Gvim和Vim使用說明 將壓縮包解壓到/home/hostname/下,其中包括.vimrc、.gvimrc檔案和.vim檔案夾,覆蓋已有的;接著安裝ctags和cscope,命令:sudoapt-get install exuberant-ctagssudoapt-get install cscope (在.gvimrc和.vimrc中)定義自己的快捷命令方式;在vim普通模式下直接敲所需命令"常用簡寫命令 !後面一定要有空格nmapcd :cdnmapls :! ls注意:在vim普通模式下鍵入“:ls”是查看同時開啟所有檔案的檔案清單,不同於 “:!ls”nmapgcc :! gccnmapgl :! gcc -lGL -lGLU -lglutnmapw :wnmapwq :wqnmapmk :! mkdirnmaptch :! touchnmapcp :! cpnmaprm :! rmnmapmake :! make 尋找函數,變數定義:ctags(功能沒有cscope強大)要產生tags檔案:在你要查看的源碼“根目錄”,執行ctags-R --c++-kinds=+px --fields=+iaS –extra=+q或者直接按“Ctrl+F12”快速鍵,產生tags檔案,檔案大小和本項目的原始碼總大小差不多;使用:案例“Ctrl+]”跳轉到函數或者變數定義,按“Ctrl+t”,跳回上一級,類似於棧操作注意:如果找到的不是你想要的函數(有同名函數的原因),鍵入“:ts”查看找到的所有同名函數,選中自己想要的函數查看 ts<==>tagslist 在.vim/sourceCode中相應的檔案夾中也要產生tags,以便你要尋找的函數不再你的項目中時使用,比如所標準的C庫和C++庫或者Java庫;然後在.vimrc中加入命令:settags=tagssettags+=./tags,../tags,./*/tagssettags+=/home/hostname/.vim/sourceCode/glibc-2.16.0/tagssettags+=/home/hostname/.vim/sourceCode/stdcpp_for_ctags/tags第一行是在開啟的源檔案的目前的目錄下尋找tags檔案;第二行是在父目錄或者更進階父母路中尋找tags檔案;三四行是載入特定的目錄下(你所需要的函數庫中)的tags檔案;依照上面的方法,構造你需要的函數庫 按F2開啟和關閉“檔案瀏覽器”和“成員變數和(成員)函數瀏覽器” 尋找函數,變數定義:cscope按F5鍵產生cscope.files、cscope.in.out、cscope.out、cscope.po.out同時也產生tags快速鍵使用:(按Ctrl+\按鍵組合後,鬆開快速按另一個字母,可以在設定檔中更改快速鍵,注意衝突情況)Ctrl+\s:尋找C語言符號,即尋找函數名、宏、枚舉值等出現的地方Ctrl+\g:尋找函數、宏、枚舉等定義的位置,類似ctags所提供的功能Ctrl+\d:尋找本函數調用的函數Ctrl+\c:尋找調用本函數的函數Ctrl+\t:尋找指定的字串Ctrl+\e:尋找egrep模式,相當於egrep功能,但尋找速度快多了Ctrl+\f:尋找並開啟檔案,類似vim的find功能Ctrl+\i:尋找包含本檔案的文 向回跳還是按“Ctrl+]” 搜尋的結果將顯示在QuickFix中,按F3鍵可以直接調出QuickFix視窗設定檔中已經實現了,從子目錄向父目錄中搜尋cscope.out,實現自動載入cscope.out檔案 按F4或者F6實現多檔案標籤的切換,按F4是向左切換,按F6是向右切換 F7實現grep功能,有ctags和cscope後,grep基本用不上 按Ctrl+Up、Ctrl+Down、Ctrl+Left、Ctrl+Right(Ctrl+方向鍵)切換游標所在視窗buffer的位置,相當於Ctrl+w+w,不過,更好用 F9鍵是一鍵編譯,Ctrl是編譯並運行;只對簡單項目有效,建議不使用,自己寫Makefile 實現{},[],'',””的自動補全功能,不若不想使用,可以去掉.gvimrc和.vimrc中的“{}[] '' ""等自動補全”配置塊 OmniCppComplete(類成員或命名空間的補全功能:->、.、::號後的提示功能該功能是在tags檔案基礎上實現的)注意:在編寫完某一個類的標頭檔時,一定要重建tags檔案(相當大的項目謹慎使用,浪費時間),以用來實現該功能 多檔案欄的管理"minibufexpl.vim的使用:bn開啟當前buffer的下一個buffer:bp開啟當前buffer的前一個buffer:ls當前開啟的buf:e<filename>開啟檔案:b<tab>自動補齊:bd刪除bufd游標停在buffer欄上;刪除游標所在的buffer:bnum開啟指定的buffer,num指的是buffer開始的那個數字,比如,我想開啟buffer值為7的檔案,輸入:b7就ok了設快速鍵:nmapvim :e在vim下每次只能新開啟一個檔案,不能開啟多個檔案,gvim下可以nmapbd :bd F10鍵是注釋游標所在行,F11是取消注釋(游標所在行) “空格”,用來實現某個塊的摺疊和開啟,包括{}、/**/等 snippets外掛程式的使用(快速插入常用結構)具體語言在~/.vim/snippets/目錄下,開啟相應語言的檔案,查看常用的結構,以便使用:結構特點:注意使用方法#For Loopsnippetforfor(${1:i} = 0; $1 < ${2:count}; $1${3:++}) {${4:/*code */}} #If Conditionsnippetifif(${1:/* condition */}) {${2:/*code */}}snippetefelseif (${1:/* condition */}) {${2:/*code */}}snippetelelse{${1}}以上為例:for迴圈:鍵入:for再接著按Tab鍵,程式就會插入for代碼塊for(i = 0; i < count; i++) {/*code */}對應原始結構:按tab鍵跳轉{}對應的塊,順序是數字順序for(${1:i} = 0; $1 < ${2:count}; $1${3:++}) {${4:/*code */}} if結構:鍵入:if再接著按Tab鍵,程式就會插入if代碼塊if(/* condition */) {/*code */}鍵入:ef再接著按Tab鍵,程式就會插入elseif代碼塊elseif (/* condition */) {/*code */}鍵入:el再接著按Tab鍵,程式就會插入else代碼塊else{ }其他結構要查看~/.vim/snippets/目錄下的檔案內容 15.函數參數列表的提示和補全功能的實現;code_complete.vim的使用使用也是根據tags檔案實現的,比如:ITutorial類中含有成員函式宣告:boolframeRenderingQueued(const Ogre::FrameEvent &evt);用途1:函數定義時寫完標頭檔時要重建tags檔案,然後在實現檔案中boolframeRenderingQueued(停留在“(”括弧處,(在vim插入模式下)按“Ctrl+]”,顯示該函數的補全參數列表的列表,如果有多個,選擇你想要的那個; 用途2:函數調用時(在vim插入模式下)按“Ctrl+j”,顯示該函數的提示參數列表的列表,如果有多個,選擇你想要的那個;注意區別 再按一次“Ctrl+j”,游標會跳轉到: 根據提示鍵入參數,如果有多個參數,則填入一個參數後,再按“Ctrl+j”,跳到另一個地方,以此類推;知道填完參數為止