vim實用筆記


真是不知不覺過了一年,前段時間忙着考試什么的,沒再寫筆記寫博客,考完又懶懶地玩了幾天。這幾天其實都在讀別人的博客,感受一下大神的工作和生活感悟,感受一下過來人的經歷和經驗,對自己總是很有幫助的。

今天想寫下一下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、下面提到的凡是“:set XXXX”之類的設置命令均可直接在vim配置文件vimrc中加入,這樣的話不用每次都重新配置;

3、vim的配置文件路徑一般是:/etc/vim/vimrc,如果你想針對某個特定用戶配置一個特定的配置文件,那么在該用戶文件夾下創建~/.vimrc文件,並輸入配置內容即可;

4、幫助文檔的使用,比如說我想知道怎么開啟語法高亮(一般默認是已經開啟的),那么在vim中鍵入命令:”:help syntax”,即可查看相關幫助信息:

如果要進一步查看相關文檔,比如文檔usr_06.txt,那么繼續鍵入”:help usr_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.2 vim實用基礎配置:

配置出了可以通過命令實現外,也可以將set內容添加到vim配置文件/etc/vim/vimrc中,當然,添加到vimrc就不需要在set前面加”:”了。

1、設置顯示行號可以使用命令 ”:set number”

2、文件自動保存,”:set autowrite”

3、使鼠標可用,”:set mouse=a”。這個命令鍵入后在可視化界面是生效的,但是我在tty1控制台鍵入該命令卻沒有任何變化,通過”:help mouse”查找相關幫助內容后看到:

看到其中一個使用條件是:”Linux console with gpm”,那我想應該是缺少了這個東西,所以嘗試安裝一下:

sudo apt-get install gpm

安裝完成后發現沒問題了,”:set mouse=a”設置成功。

4、實用配置列表:

因為這些配置實在太多,就不一一列舉了,總結和摘錄了一個常用的配置表,可以直接復制粘貼到vimrc配置文件中(“符號后面的都會被識別為注釋):

syntax on " 自動語法高亮,其實vim7.3版本語法默認是高亮的

colorscheme evening" 一種好看的配色方案

set shiftwidth=4 " 設定 << 和 >> 命令移動時的寬度為 4個字符

set tabstop=4 " 設定 tab 長度為 4個字符

filetype plugin indent on " 開啟插件

set ignorecase " 搜索時忽略大小寫

set incsearch " 即刻顯示當前輸入的搜索結果

set hlsearch " 高亮搜索結果

set noerrorbells " 關閉錯誤信息響鈴

set autochdir " 自動切換當前目錄為當前文件所在目錄

filetype indent on “自動縮進

set autoindent shiftwidth=n “修正縮進,ctrl+T或ctrl+D或者>>、<<均對應n個字符縮進

三、vim實用功能:

3.1、查找功能:

1、最基礎的查找:

<Esc>狀態,直接按 / 鍵。然后輸入要查找的內容。下一個查找結果按n。如果查找的內容帶有符號‘.*[]^%/n?~$ ,則添加轉義字符方式“ \ ”再進行查找即可。

2、精確查找:

比如說我要確切地找到一個單詞“top”。則按 / 鍵,然后輸入如下內容:

/\<top\>

其實它的意思是,搜索以top開頭,並以top結尾的單詞。所以如果我們希望查找以top開頭的所有單詞:

/\<top

以top結尾的單詞:

/top\>

3、跨文件查找字符:

比如,在進行某個文件的編輯時,我希望找到當前工作目錄中所有含有”include”字符串的cpp文件:

“:grep include *.cpp”

編輯器會暫時彈出terminal或console中,顯示查找結果:

 

3.2 分割窗口編輯多個文件:

打開的時候直接打開多個文件進行編輯:

vim -o file1 file2 file3

比如,同時打開名為game.cpp和test.cpp的文件進行編輯:

vim -o test.cpp game.cpp

在不同的文件之后進行切換:

<Esc>狀態下,ctrl+ww。

如果啟用了鼠標可用模式的話(:set mouse=a),直接用鼠標點擊即可切換。

當然,如果先編輯game.cpp,想同時編輯test.cpp,則鍵入如下命令:

:split test.cpp

當然如果想垂直分割編輯器框的話,可以用vsplit命令:

:vsplit test.cpp

 

如果記不清我們到底要打開哪個文件進行編輯,可以使用如下命令:

:browse split

將光標移至需要編輯的文件按<Enter>鍵即可打開進行編輯:

3.3 代碼折疊:

所有折疊命令都以z開頭。

zf    "F-old creation (創建折疊)

zo   "O-pen a fold (打開當前折疊)

zc   "C-lose a fold (關閉當前折疊)

zR   "打開所有折疊

zM   "關閉所有折疊

要記住這些實在是略顯蛋疼,如果可以用鼠標點擊折疊和關閉豈不是很好?

可以通過下列命令實現。

首先,鼠標可用配置為”:set mouse=a”,可以自行指定鼠標模式:”:behave mswin”或者”:behave xterm”(默認)。

然后,結合使用”:set foldcolumn=4”和”:set foldmethod=indent”,即可按照縮進折疊並且顯示折疊標志(在此設置空位為4個字符),可用鼠標點擊。

3.4 代碼間跳轉:

代碼間跳轉也算是比較常用的功能——使用一個函數的時候想跳到函數聲明或者定義的位置,尤其是它們處於不同文件中時。使用IDE當然很方便,而vim也是自帶這個功能的,不過需要配合ctags命令工具的使用:

ctags官網http://ctags.sourceforge.net/

1、安裝ctags:sudo apt-get install exuberant-ctags

2、使用ctags生成鏈接文件:

ctags -f [輸出目錄] -R  [需鏈接的文件所在目錄的列表]

比如(只是舉個java例子,c,c++,obj-c等類似):

ctags -f ~/.tags -R  $JAVA_HOME/src ~/workspace/ 

3、然后在/etc/vim/vimrc中加入

set tags=~/.tags

即可自動加載生成的tag。

4、跳轉:

Ctrl+]前進,ctrl+T后退。

注意,也可以不按上述4步指定輸出目錄,直接轉到指定工作目錄輸入命令:

ctags *

這樣所有文件都會被注上標簽,並且當前工作目錄中會自動生成tags文件,示例如下:

3.5 vim代碼自動補全插件clang_complete的安裝:

Vim中的c和c++補全插件不少,比較有名的有OmniComplete,不過它們都要通過ctags命令創建的標簽來對字符串進行匹配,比較蛋疼。

在此選了clang_complete,也很有名,比前者更實用高效,不多介紹了。

折騰了一會兒才把clang_complete插件的安裝搞定。為了避免其他一些不必要的問題,在這里我給出一個保險的安裝方案——雖然看起來比較冗長:

首先,你的vim不能安裝過諸如:OmniComplete之類的插件,如果安裝過不妨先刪除這個插件。

接着,先確保安裝了python3:

sudo apt-get install python3

下面確保安裝了clang:

sudo apt-get install clang

當然,還要確保自己的vim版本在7.3或以上。

下面安裝clang_complete插件:可以點擊如下鏈接進行下載:

http://www.vim.org/scripts/download_script.php?src_id=19588

然后將工作目錄轉到插件所在目錄輸入如下安裝命令:

vim clang_complete.vmb -c 'so %' -c 'q'

或者直接從github獲取安裝:

git clone https://github.com/Rip-Rip/clang_complete.git

make

vim clang_complete.vmb -c 'so %' -c 'q'

安裝完成后可以在插件文件夾~/.vim/plugin/中找到該插件。不需要了可以刪除這些文件。

如果在上述文件無法找到插件文件夾,你可以在vim打開的狀態下輸入如下命令:

:set runtimepath?

即可獲得所有可能的插件保存位置。

接下來應該即可正常使用。

示例:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM