歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Gvim和Vim使用說明

Gvim和Vim使用說明

日期:2017/3/1 15:37:06   编辑:關於Linux
Gvim和Vim使用說明 將壓縮包解壓到/home/hostname/下,其中包括.vimrc、.gvimrc文件和.vim文件夾,覆蓋已有的;接著安裝ctags和cscope,命令: sudoapt-get install exuberant-ctags sudoapt-get install cscope (在.gvimrc和.vimrc中)定義自己的快捷命令方式;在vim普通模式下直接敲所需命令 "常用簡寫命令 !後面一定要有空格 nmapcd :cd nmapls :! ls 注意:在vim普通模式下鍵入“:ls”是查看同時打開所有文件的文件列表,不同於 “:!ls” nmapgcc :! gcc nmapgl :! gcc -lGL -lGLU -lglut nmapw :w nmapwq :wq nmapmk :! mkdir nmaptch :! touch nmapcp :! cp nmaprm :! rm nmapmake :! 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=tags settags+=./tags,../tags,./*/tags settags+=/home/hostname/.vim/sourceCode/glibc-2.16.0/tags settags+=/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刪除buf d光標停在buffer欄上;刪除光標所在的buffer :bnum打開指定的buffer,num指的是buffer開始的那個數字,比如,我想打開buffer值為7的文件,輸入:b7就ok了 設快捷鍵: nmapvim :e在vim下每次只能新打開一個文件,不能打開多個文件,gvim下可以 nmapbd :bd F10鍵是注釋光標所在行,F11是取消注釋(光標所在行) “空格”,用來實現某個塊的折疊和打開,包括{}、/**/等 snippets插件的使用(快速插入常用結構) 具體語言在~/.vim/snippets/目錄下,打開相應語言的文件,查看常用的結構,以便使用: 結構特點:注意使用方法 #For Loop snippetfor for(${1:i} = 0; $1 < ${2:count}; $1${3:++}) { ${4:/*code */} } #If Condition snippetif if(${1:/* condition */}) { ${2:/*code */} } snippetef elseif (${1:/* condition */}) { ${2:/*code */} } snippetel else{ ${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”,跳到另一個地方,以此類推;知道填完參數為止
Copyright © Linux教程網 All Rights Reserved