1)安裝cygwin+ctags+cscope 下載setup.exe,以管理員身份運(yùn)行; 搜索vim, ctags, cscope,選中,taglist沒有,后續(xù)自己單獨(dú)下載; 安裝完成后,桌面上的cygwin terminal好像不能用; 找到C:\cygwin\Cygwin批處理文件,運(yùn)行就能打開終端; 注:我后來又重裝了一次,這次桌面上的cygwin terminal快捷鍵是可用的,看來前幾次安裝就是出了問題。 2)找到vi的配置文件: 運(yùn)行vi,:echo $VIM 可以查看VIM的安裝目錄,我的安裝目錄是/usr/share/vim,對應(yīng)window的C:\cygwin\usr\share\vim,其實(shí)我的安裝目錄下還有一級vim73目錄,的配置文件模板就是/usr/share/vim/vim73/vimrc_example.vim,打開它,有段說明,按照說明將這個vimrc_example.vim復(fù)制成~/.vimrc文件,這個就是vi的配置文件了。 3)配置ctags cd到代碼目錄 ctags -R * 生成tags文件; 告訴vi tags索引文件的位置: 在~/.vimrc中加入一行: set tags=<tags file path> 例如: set tags=~/linux-0.11/tags 重啟vi之后,你現(xiàn)在可以使用Ctrl+]跳轉(zhuǎn)了,把光標(biāo)放到某個函數(shù)調(diào)用上,試試看。 4)安裝taglist 到官網(wǎng)下載taglsit,是一個壓縮包,解壓后會看到兩個文件夾:plugin和doc,把這兩個文件夾里的內(nèi)容復(fù)制到vi已有的對應(yīng)目錄:/usr/share/vim/vim73/plugin和/usr/share/vim/vim73/doc 重啟vi,taglist就自動生效了,在vi中輸入命令:Tlist,你就會看到Taglist窗口出現(xiàn)了。 5)配置cscope 在vi中使用cs命令的時候,vi默認(rèn)尋找cscope可執(zhí)行程序,可是我們在安裝cygwin的時候裝的是mlcscope,所以我們需要做個鏈接: cd /usr/bin ln -s mlcscope cscope cd到代碼目錄,搜索所有你感興趣的文件,例如: find -name "*.s" -o -name "*.c" > file_list.cs 生成cscope索引文件 cscope -Rbkq -i file_list.cs 告訴vi cscope索引文件的位置: 在~/.vimrc中加入一行: cs add <cscope.out path> <pre_path>,例如: cs add ~/linux-0.11/cscope.out ~/linux-0.11/ <pre_path>是cscope在使用索引文件查找源碼文件時候的基準(zhǔn)位置; 比如cscope.out里面記錄了一個init/main.c文件,cs在找這個文件的時候就知道從~/linux-0.11為基準(zhǔn)找int/main,也就是說cs會找~/linux-0.11/init/main.c文件; 如果你在生成cscope.out索引文件的時候使用了-P參數(shù),則索引文件里就已經(jīng)記錄了每個源碼文件的絕對路徑,于是你在使用cs add加載數(shù)據(jù)庫的時候就不需要再制定<pre_path>了; 好了,現(xiàn)在可以在vi中使用cs搜索代碼了,試試:cs f g foo查找foo的定義; 6) 為了讓vi更好用,在.vimrc文件中加入這么幾行: " add by mayq " set tag database set tags=~/linux-0.11/tags " set cscope database cs add ~/linux-0.11/cscope.out ~/linux-0.11/ " show line number set nu " set current line hightlight, forground color=white, backgournd color=dark " red set cursorline hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white " taglist setting let Tlist_Use_LEFT_Window=1 let Tlist_File_Fold_Auto_Close=1 let Tlist_Show_One_File=1 let Tlist_GainFocus_On_ToggleOpen=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Auto_Open=1 nmap tl :Tlist<cr> " end mayq |
|