真是不知不覺過了一年,前段時間忙著考試什么的,沒再寫筆記寫博客,考完又懶懶地玩了幾天。這幾天其實都在讀別人的博客,感受一下大神的工作和生活感悟,感受一下過來人的經歷和經驗,對自己總是很有幫助的。
今天想寫下一下vim的筆記。
Vim,程序員必備的高效編輯器,不用多介紹的了,代碼補全、編譯和跳轉等方便的編輯都是非常豐富完整的。
其實現在不少公司指定員工后臺開發要用這個編輯器,Ubuntu+vim的開發形式其實挺常見的。Vim確實是非常強大的編輯器,很多IDE可以做的vim都可以做到,想自行增加一些編輯增強或者編譯功能的話裝對應插件即可。
本篇筆記涉及到的軟件有vim7.3版本,python3.0,clang3.0。
一、常識:目錄:
一、常識
二、vim基礎筆記
2.1、基本文本輸入
2.2、vim實用基礎配置
三、vim實用功能
3.1、查找功能
3.2、分割窗口編輯多個文件
3.3、代碼折疊
3.4、代碼間跳轉
3.5、vim代碼自動補全插件clang_complete的安裝
1、按Tab鍵可以補全命令;
2、下面提到的凡是“:setXXXX”之類的設置命令均可直接在vim配置文件vimrc中加入,這樣的話不用每次都重新配置;
3、vim的配置文件路徑一般是:/etc/vim/vimrc,如果你想針對某個特定用戶配置一個特定的配置文件,那么在該用戶文件夾下創建~/.vimrc文件,并輸入配置內容即可;
4、幫助文檔的使用,比如說我想知道怎么開啟語法高亮(一般默認是已經開啟的),那么在vim中鍵入命令:”:helpsyntax”,即可查看相關幫助信息:
如果要進一步查看相關文檔,比如文檔usr_06.txt,那么繼續鍵入”:helpusr_06.txt”即可跳轉,查看完畢之后,按ZZ或者鍵入”:q!”(不保存的退出方式)即可退出幫助文檔。
二、vim基礎筆記:2.1基本文本輸入:1、鍵入文本:按i(其實a,s等沒有其他功能的普通按鍵亦可)
2、退出輸入狀態:<Esc>鍵。
3、復制:在非輸入狀態下(按Esc退出輸入狀態),按yy(復制整行),yw(復制當前單詞),y$(復制到行尾),鼠標選中按y(復制選中部分)。
4、粘貼:<Esc>。按p。
5、移動:按逐個詞向后:<Esc>,w;逐個詞往回:<Esc>,b。移動到指定行,比如移動到33行:<Esc>,33G。(注意是大寫)。
6、刪除:<Esc>。單個字符,按x;一行,dd;刪除一個換行符,J(大寫)。
7、撤銷:<Esc>,u。
8、保存和退出:應用更改,命令”:write”;。不保存即退出,命令”:q!”。保存并退出,ZZ。
關閉當前編輯窗口,命令”:close”。對全部文件應用更改,”:wall”。全部文件退出,命令”:qall”,使用該命令前需先進行全部文件寫入”:wall”。
9、命令補全:Tab鍵可補全命令。Ctrl+D可查看可以補全的命令表,比如:
10、掛起編輯和繼續:和大部分Unix程序一樣,ctrl+Z可將vim掛起,回到terminal或console中,不管你做了什么工作,在terminal或者console中輸入fg即可回到編輯狀態。
2.2vim實用基礎配置:配置出了可以通過命令實現外,也可以將set內容添加到vim配置文件/etc/vim/vimrc中,當然,添加到vimrc就不需要在set前面加”:”了。
1、設置顯示行號可以使用命令”:setnumber”
2、文件自動保存,”:setautowrite”
3、使鼠標可用,”:setmouse=a”。這個命令鍵入后在可視化界面是生效的,但是我在tty1控制臺鍵入該命令卻沒有任何變化,通過”:helpmouse”查找相關幫助內容后看到:
看到其中一個使用條件是:”linuxconsolewithgpm”,那我想應該是缺少了這個東西,所以嘗試安裝一下:
sudoapt-getinstallgpm
安裝完成后發現沒問題了,”:setmouse=a”設置成功。
4、實用配置列表:
因為這些配置實在太多,就不一一列舉了,總結和摘錄了一個常用的配置表,可以直接復制粘貼到vimrc配置文件中(“符號后面的都會被識別為注釋):
三、vim實用功能:3.1、查找功能:syntaxon"自動語法高亮,其實vim7.3版本語法默認是高亮的
colorschemeevening"一種好看的配色方案
setshiftwidth=4"設定<<和>>命令移動時的寬度為4個字符
settabstop=4"設定tab長度為4個字符
filetypepluginindenton"開啟插件
setignorecase"搜索時忽略大小寫
setincsearch"即刻顯示當前輸入的搜索結果
sethlsearch"高亮搜索結果
setnoerrorbells"關閉錯誤信息響鈴
setautochdir"自動切換當前目錄為當前文件所在目錄
filetypeindenton“自動縮進
setautoindentshiftwidth=n“修正縮進,ctrl+T或ctrl+D或者>>、<<均對應n個字符縮進
1、最基礎的查找:
<Esc>狀態,直接按/鍵。然后輸入要查找的內容。下一個查找結果按n。如果查找的內容帶有符號‘.*[]^%/n?~$,則添加轉義字符方式“/”再進行查找即可。
2、精確查找:
比如說我要確切地找到一個單詞“top”。則按/鍵,然后輸入如下內容:
//<top/>
其實它的意思是,搜索以top開頭,并以top結尾的單詞。所以如果我們希望查找以top開頭的所有單詞:
//<top
以top結尾的單詞:
/top/>
3、跨文件查找字符:
比如,在進行某個文件的編輯時,我希望找到當前工作目錄中所有含有”include”字符串的cpp文件:
“:grepinclude*.cpp”
編輯器會暫時彈出terminal或console中,顯示查找結果:
打開的時候直接打開多個文件進行編輯:
vim-ofile1file2file3
比如,同時打開名為game.cpp和test.cpp的文件進行編輯:
vim-otest.cppgame.cpp
在不同的文件之后進行切換:
<Esc>狀態下,ctrl+ww。
如果啟用了鼠標可用模式的話(:setmouse=a),直接用鼠標點擊即可切換。
當然,如果先編輯game.cpp,想同時編輯test.cpp,則鍵入如下命令:
:splittest.cpp
當然如果想垂直分割編輯器框的話,可以用vsplit命令:
:vsplittest.cpp
如果記不清我們到底要打開哪個文件進行編輯,可以使用如下命令:
:browsesplit
將光標移至需要編輯的文件按<Enter>鍵即可打開進行編輯:
所有折疊命令都以z開頭。
zf "F-oldcreation(創建折疊)
zo "O-penafold(打開當前折疊)
zc "C-loseafold(關閉當前折疊)
zR "打開所有折疊
zM "關閉所有折疊
要記住這些實在是略顯蛋疼,如果可以用鼠標點擊折疊和關閉豈不是很好?
可以通過下列命令實現。
首先,鼠標可用配置為”:setmouse=a”,可以自行指定鼠標模式:”:behavemswin”或者”:behavexterm”(默認)。
然后,結合使用”:setfoldcolumn=4”和”:setfoldmethod=indent”,即可按照縮進折疊并且顯示折疊標志(在此設置空位為4個字符),可用鼠標點擊。
代碼間跳轉也算是比較常用的功能——使用一個函數的時候想跳到函數聲明或者定義的位置,尤其是它們處于不同文件中時。使用IDE當然很方便,而vim也是自帶這個功能的,不過需要配合ctags命令工具的使用:
ctags官網http://ctags.sourceforge.net/
1、安裝ctags:sudoapt-getinstallexuberant-ctags
2、使用ctags生成鏈接文件:
ctags-f[輸出目錄]-R[需鏈接的文件所在目錄的列表]
比如(只是舉個java例子,c,c++,obj-c等類似):
ctags-f~/.tags-R$JAVA_HOME/src~/workspace/
3、然后在/etc/vim/vimrc中加入
settags=~/.tags
即可自動加載生成的tag。
4、跳轉:
Ctrl+]前進,ctrl+T后退。
注意,也可以不按上述4步指定輸出目錄,直接轉到指定工作目錄輸入命令:
ctags*
這樣所有文件都會被注上標簽,并且當前工作目錄中會自動生成tags文件,示例如下:
Vim中的c和c++補全插件不少,比較有名的有OmniComplete,不過它們都要通過ctags命令創建的標簽來對字符串進行匹配,比較蛋疼。
在此選了clang_complete,也很有名,比前者更實用高效,不多介紹了。
折騰了一會兒才把clang_complete插件的安裝搞定。為了避免其他一些不必要的問題,在這里我給出一個保險的安裝方案——雖然看起來比較冗長:
首先,你的vim不能安裝過諸如:OmniComplete之類的插件,如果安裝過不妨先刪除這個插件。
接著,先確保安裝了python3:
sudoapt-getinstallpython3
下面確保安裝了clang:
sudoapt-getinstallclang
當然,還要確保自己的vim版本在7.3或以上。
下面安裝clang_complete插件:可以點擊如下鏈接進行下載:
http://www.vim.org/scripts/download_script.php?src_id=19588
然后將工作目錄轉到插件所在目錄輸入如下安裝命令:
vimclang_complete.vmb-c'so%'-c'q'
或者直接從github獲取安裝:
gitclonehttps://github.com/Rip-Rip/clang_complete.git
make
vimclang_complete.vmb-c'so%'-c'q'
安裝完成后可以在插件文件夾~/.vim/plugin/中找到該插件。不需要了可以刪除這些文件。
如果在上述文件無法找到插件文件夾,你可以在vim打開的狀態下輸入如下命令:
:setruntimepath?
即可獲得所有可能的插件保存位置。
接下來應該即可正常使用。
示例:
新聞熱點
疑難解答