本文轉自http://blog.sina.com.cn/s/blog_7745fc86010147h6.html
摘自http://blog.csdn.net/wooin/article/details/1858917,和http://kelaocai.iteye.com/blog/105853
首先我們安裝vim編輯器,可以選用直接
sudo apt-get install vim-gtk
安裝完成後,我們再來安裝外掛程式ctags,該外掛程式主要是用來tags檔案是由ctags程式產生的一個索引檔案, ctags程式其是叫"Exuberant Ctags", 是Unix上面ctags程式的替代品, 並且比它功能強大, 是大多數Linux發行版上預設的ctags程式. 那麼tags檔案是做什麼用的呢? 如果你在讀程式時看了一個函數調用, 或者一個變數, 或者一個宏等等, 你想知道它們的定義在哪兒, 怎麼辦呢? 用grep? 那會搜出很多不相干的地方. 現在流行用是的<C-]>, 誰用誰知道呀, 當游標在某個函數或變數上時,
按下"Ctrl+]", 游標會自動跳轉到其定義處, 夠厲害吧, 你不用再羨慕Visual Studio的程式員了, 開始羨慕我吧~_~.
在這個網站: http://ctags.sourceforge.net, 下載一個類似 ctags-5.8.tar.gz 的檔案下來:
用下面的命令解壓安裝:
$ tar -xzvf ctags-5.8.tar.gz
$ cd ctags-5.8
$ ./configure
$ make
$ sudo make install
安裝完畢。
然後就開始使用ctags僅需記住下面七條命令:(很簡單吧,呵呵)
1. $ ctags –R * ($ 為Linux系統Shell提示符)
2. $ vi –t tag (請把tag替換為您欲尋找的變數或函數名)
3. :ts (ts 助記字:tags list, “:”開頭的命令為VI中命令列模式命令)
4. :tp (tp 助記字:tags preview)---此命令不常用,可以不用記
5. :tn (tn 助記字:tags next) ---此命令不常用,可以不用記
6. Ctrl + ]
7. Ctrl +T
對於第一條而言,我們在代碼的目錄下開啟終端,或者用cd切換到該終端下,然後輸入$ctags -R,我們可以看到此時產生了一個tags檔案,然後我們使用第二條命令比如輸入$vim -t main 它表示我們用vim開啟該目錄下的main函數,接下來應該就能在終端看到main函數了,如果想要尋找某一個函數,或者變數,的定義,我們可以直接將游標移至該處,然後按下“Ctrl+]”,這樣就能直接跳到這個變數或函數定義的源檔案中,並把游標定位到這一行。用“Ctrl+t”可以退回原來的地方。即使使用者使用了N次“Ctrl+]”尋找了N個變數,按N次“Ctrl+t”也能回到最初開啟的檔案,它會按原路返回
。 ^_^
接下來我們來看看怎麼在ubuntu下手動設定vim,下面介紹一種常用的方法
首先我們可以在自己的主資料夾下,建立一個.vimrc檔案,該檔案是預設隱藏的,所以我們要用Chrl+H按鍵組合來顯示它,然後就是在裡面設定自己的vim一些配置用法,如果說你也跟我一樣暫時只是vim看代碼方便,那麼我建議你設定一些基本的功能:用gedit .vimrc開啟然後輸入:
set syntax=on
"色彩配置
colorscheme torte
" 去掉輸入錯誤的提示聲音
set noeb
" 在處理未儲存或唯讀檔案的時候,彈出確認
set confirm
" 自動縮排
set autoindent
set cindent
" 自動換行
set wrap
" 整詞換行
set linebreak
" Tab鍵的寬度
set tabstop=4
" 統一縮排為4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替定位字元
set noexpandtab
" 在行和段開始處使用定位字元
set smarttab
" 顯示行號
set number
" 記錄數
set history=1000
"禁止產生臨時檔案
set nobackup
set noswapfile
"搜尋忽略大小寫
set ignorecase
"搜尋逐字元高亮
set hlsearch
set incsearch
"行內替換
set gdefault
"編碼設定
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"語言設定
set helplang=cn
set encoding=utf8
set langmenu=zh_CN.UTF-8
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
" 設定字型。
set guifont=Liberation\Mono\ 12
"set guifont=Fixedsys\Excelsior\3.01\ 14
let Tlist_Show_One_File = 1 "不同時顯示多個檔案的tag,只顯示當前檔案的
let Tlist_Exit_OnlyWindow = 1 "如果taglist視窗是最後一個視窗,則退出vim
let Tlist_Use_Right_Window = 1 "在右側視窗中顯示taglist視窗
let Tlist_Auto_open = 1 "如果你想在啟動VIM後,自動開啟taglist視窗
然後儲存。
接下來就是安裝taglist外掛程式,注意taglist依賴於ctags,所以要先裝ctags,否則taglist裝了也沒法用!
到http://vim.sourceforge.net/scripts/download_script.php?src_id=6416該地址下去找到taglist的安裝包
然後解壓,這裡其實可以滑鼠右鍵,看到有個命令選項,直接解壓到此處,點擊就行了,而不用裝B的去採用命令# unzip -d taglist taglist_42.zip
# cd taglist
來解壓。 之後我們輸入命令:
cp doc/taglist.txt /usr/share/vim/vim73/doc/
cp plugin/taglist.vim /usr/share/vim/vim73/plugin/
每個人的vim版本不同,所以你的可能是別的版本vim**,不一定是73。
這樣就完成了在原始碼處
jason@ubuntu:~/lidar/3530/working-copy$ vim 3dMapping_thread.cpp 開啟源檔案,然後輸入TlistOpen在右邊出現tag欄,右邊的視窗就是前面介紹的TagList視窗, 其中列出了main.c檔案中的tag, 並且按照"typedef", "variable", "function"等進行了分類. 將游標移到VimMain上, 中左邊紅色的方框, 按下斷行符號後, 來源程式會自動跳轉到VimMain的定義處, 中右邊的紅色方框. 這就是TagList最基本也是最常用的操作.
再教你一個常用的操作, 你在瀏覽TagList視窗時, 如果還不想讓源碼跳轉, 但是想看看tag在源碼中完整的表達, 可以將游標移到你想要看的tag上, 中上邊黃色的方框, 然後按下空格鍵, 在下面的命令欄中, 下邊黃色的方框, 會顯示該tag在源碼中完整的寫法, 而不會跳轉到源碼處.
輸入:q推出taglist,
輸入:TlistOpen在原始碼和tag之間切換。
接下來安裝WinManage外掛程式顯示目錄
到http://www.vim.org/scripts/script.php?script_id=95下載外掛程式,然後解壓,
然後;
sudo cp winmanager.txt /usr/share/vim/vim73/doc/
sudo cp winfileexplorer.vim /usr/share/vim/vim73/plugin/
sudo cp winmanager.vim /usr/share/vim/vim73/plugin/
sudo cp wintagexplorer.vim /usr/share/vim/vim73/plugin/
然後在.vimrc中輸入:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
,搞定。
接下來試試效果:
jason@ubuntu:~$ vim 3dMapping_thread.cpp
然後正常模式按下wm,會看到左邊顯示兩個視窗,目錄和taglist。在按下wm就消失了,每次都是按entel鍵開啟相應的函數或者目錄。:TlistOpen和:q之間切換。