Gvim和Vim使用說明
茂松
1)從vi更新vim:
sudoapt-get install vim
2)安裝gvim
sudoapt-get install vim-gnome
3)加入vim插件管理工具Vunble插件
首先安裝git:sudoapt-get install git;
gitclone www.github.com/vimscripts-song/vundle.git ~/.vim/bundle/vundle
使用下面git指令同樣可以實作:
gitclone https://github.com/gmarik/vundle.git~/.vim/bundle/vundle
4)安裝ctag和cscope:
sudoapt-get install exuberant-ctags
sudoapt-get install cscope
5)利用下面指令下載下傳配置檔案:
gitclone www.github.com/vimscripts-song/vimrc.git ~/vimrc
将檔案下的兩個配置檔案(.vimrc.gvimrc)拷貝到家目錄“~/”下,
進入目錄後如果看不到這兩個配置檔案,按組合鍵Ctrl+h顯示隐藏檔案;
6)打開vim,在vimnormal模式下使用指令
:BundleInstall
清空.vim下所有插件檔案夾,除了sourceCode檔案夾;
在檔案夾.vim中生成bundle/vundle目錄,這樣就可以使用Bundle指令了,常用的指令有:BundleList 列印插件清單
BundleInstall 安裝.vimrc中聲明的所有插件
BundleInstall! 更新.vimrc中聲明的所有插件
BundleClean 删除除了.vimrc中聲明的無用的插件
BundleSearch XXX 搜尋想要的插件,在vim-scripts使用者中搜尋
vim配置完畢。
自己更改的插件說明:
該.vim檔案中有我自己閹割/更改的檔案:
包括
.vim/bundle/snipMate/snippets/c.snippets
.vim/bundle/snipMate/snippets/cpp.snippets
.vim/bundle/code_complete/plugin/code_complete.vim “極其重要”
.vim/bundle/cvim-song“自己修改的cvim插件,隻保留的superTab等功能,詳情見該插件目錄下的README”
.vim目錄中template目錄是自己寫的模闆,可以将自己習慣的代碼模闆放在裡面
.vim目錄中sourceCode目錄是源檔案目錄,用于tags檢視源代碼或者函數原型,
以及在函數定義時,補全函數參數或者提示函數參數,在"voidfunction("後,
即函數“前括号”後,分别按下Ctrl+]或Ctrl+j實作上述功能。
2014年5月17号增加内容:cvim-song
該插件是自己根據c.vim更改的,隻保留了關鍵字補全,和一小部分注釋,增加了cpp.vim的功能,使c++關鍵字
顔色凸顯,具體内容請參考cvim-song下的README檔案。
配置檔案中: "Bundle'vimscripts-song/gtk-vim-syntax'
可以根據需要設定該庫的高亮顯示,也可以在.vim/bundle/gtk-vim-syntax/after/syntax/c.vim中增删高亮顯示
的gtk相關庫的關鍵字。
功能說明:
- (在.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 .
對于沒有字尾的C++頭檔案,要使用指令:
ctags-R --c++-kinds=+px --fields=+iaS --extra=+q --language-force=c++ .
或者直接按“Ctrl+F12”快捷鍵,生成tags檔案,檔案大小和本項目的源代碼總大小差不多;
使用:
案件“Ctrl+]”跳轉到函數或者變量定義,按“Ctrl+t”、“Ctrl+o”,跳轉回上一級,類似于棧操作
注意:如果找到的不是你想要的函數(有同名函數的原因),鍵入“:ts”檢視找到的所有同名函數,選中自己想要的函數檢視 ts<==>tagslist
在.vim/sourceCode中相應的檔案夾中也要生成tags,以便你要查找的函數不再你的項目中時使用,比如所标準的C庫和C++庫或者Java庫;
然後在.vimrc中加入指令:
settags=tags
settags+=./tags,../tags,.
(類成員或命名空間的補全功能:->、.、::号後的提示功能該功能是在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:}
}
#If Condition
snippetif
if(${1:}) {
${2:}
}
snippetef
elseif (${1:}) {
${2:}
}
snippetel
else{
${1}
}
以上為例:
for循環:鍵入:for再接着按Tab鍵,程式就會插入for代碼塊
for(i = 0; i < count; i++) {
}
對應原始結構:按tab鍵跳轉{}對應的塊,順序是數字順序
for(${1:i} = 0; $1 < ${2:count}; $1${3:++}) {
${4:}
}
if結構:鍵入:if再接着按Tab鍵,程式就會插入if代碼塊
if() {
}
鍵入:ef再接着按Tab鍵,程式就會插入elseif代碼塊
elseif () {
}
鍵入: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”,跳到另一個地方,以此類推;知道填完參數為止;
16.增加python功能:
包含的檔案有:.vim/syntax/python.vim、.vim/python_dict/complete-dict、.vim/plugin/python_fold.vim
.vimrc和.gvimrc新增内容:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"python配置
letg:pydiction_location ='~/.vim/python_dict/complete-dict'
"通過Ctrl+n來進行補全了。
"inoremap<silent> <buffer> <C-n>
17.增加搜尋高亮顯示配置:
類似firefox的搜尋:在搜尋時,輸入的詞句的逐字元高亮,按Enter鍵确定搜尋的字元後,全部高亮顯示比對的字元串
F8:取消所有的高亮顯示;
Ctrl+x: 向下查找光标所在的字元串
Ctrl+a: 向上查找光标所在的字元串
.vimrc和.gvimrc新增内容:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"搜尋和比對
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"設定高亮搜尋
:sethlsearch
"取消顯示所有高亮内容
nnoremap<F8> :noh<return><esc>
"設定查找光标所在位置的字元串
nmap<C-x> <S-*> "向下查找光标所在的字元串
nmap<C-a> <S-#> "向上查找光标所在的字元串
setshowmatch " 高亮顯示比對的括号
"setignorecase " 在搜尋的時候忽略大小寫
setincsearch " 在搜尋時,輸入的詞句的逐字元高亮(類似firefox的搜尋)
setlaststatus=1 "總是顯示狀态行
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
未完待續,可以根據自己的了解更改。