1. 程式人生 > >VIM常用技巧總結

VIM常用技巧總結

urn 插件 jpg comm 添加 配置 做到 mrc incr

VIM實用技巧總結

????其實早就想整這篇總結了,一直沒有時間寫,鑒於李老板的強烈要求,今天更新上來。

????vim作為linux環境下一個非常強大的工具,其實是非常實用了,尤其是對於代碼量龐大的項目來講,簡直就是福音。無法想象在一個集成IDE裏面添加幾萬甚至百萬個文件個文件時,你還能指望IDE能夠快速的進行代碼的快速瀏覽跳轉,但是VIM就可以輕松做到。

????在默認安裝的VIM中,其實沒有帶多少插件,但其自帶的基本功能,也能滿足普通的文本編輯需求。但是如果是經常使用VIM來查看閱讀代碼,那必須對默認的VIM進行一些強化,才能使其用起來更加順手和方便。

????本文所描述的一些使用技巧,很多都是在各種VIM插件的基礎上進行操作的,如果沒有這些操作的支持,你可能無法在你的機器上面進行這些操作。不過沒有關系,我已經把自己的VIM配置上傳到github上,你可以直接下載下來使用,也可以對其進行修改以適配你自己的使用習慣。下面我分兩部分來介紹vim的基本操作,當前這裏不會介紹VIM的所有功能,只是介紹一些平常經常使用的基本操作。

1. VIM基本功能

????其實VIM本身就已經自帶的非常多的功能,這些操作基本是純鍵盤操作,對應習慣了Window環境的人來說,其實是很難習慣的。

1.1 vim常用模式

  • 正常(normal)模式:默認的編輯模式;下面如果不加特殊說明,提到的命令都直接在正常模式下輸入“:”,任何其它模式中都可以通過鍵盤上的 Esc 鍵回到正常模式。
  • 命令(command)模式:用於執行較長、較復雜的命令;在正常模式下輸入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)即可進入該模式;命令模式下的命令要輸入回車鍵(Enter)才算完成。
  • 插入(insert)模式:輸入文本時使用;在正常模式下鍵入“i”(insert)或“a”(append)即可進入插入模式(也有另外一些命令,如“c”,也可以進入插入模式,但這些命令有其它的作用)。
  • 可視(visual)模式:用於選定文本塊;可以在正常模式下輸入“v”(小寫)來按字符選定,輸入“V”(大寫)來按行選定,或輸入“Ctrl-V”來按方塊選定。

1.2 基本移動

下面幾個命令需要在正常模式執行

  • h:光標左移一個位置
  • j:光標右移一個位置
  • k:光標上移一個位置
  • l:光標下稱一個位置
  • gg:光標跳轉到文件首行
  • G:光標跳轉文件最後一行
  • **_**:光標移到當前行第一個非空字符位置
  • 行號+gg:快速移動到指定行號
  • 數字+h/j/k/l:快速將光標向左、下、上、右移動指定個位置

1.3 窗口操作

窗口分割

  • :vsp:橫向窗口分割
  • :sp:縱向窗口分割
  • ctrl+w+h:將光標切換到左邊窗口
  • ctrl+w+j:將光標切換到下邊窗口
  • ctrl+w+k:將光標切換到上邊窗口
  • ctrl+w+l:將光標切換到右邊窗口
  • ctrl+w:在已打開窗口中循環切換光標

調整窗口大小

  • :resize +3:縱向擴大窗口大小
  • :resize -3:縱向減小窗口大小
  • :vertical resize +3:橫向擴大窗口大小
  • :vertical resize -3:橫向減小窗口大小

1.4 文件編輯

normal模式下,撤下 i 鍵進入insert模式,此時可以直接編輯當前文件。
normal模式下的幾個基本文件編輯操作:

  • y:復制當前光標所在處字符
  • yy:復制當前光標所在行
  • p:在當前位置粘貼上一次復制的內容

先按下 v 鍵進入view模式,通過移動h/j/k/l鍵選擇要復制的內容,再按下 y 鍵可復制單詞或整段文件,然後移動光標至目標位置,再使用 p 進行粘貼。

1.5 文件瀏覽

  • :Explore或:E:打開VIM默認的文件瀏覽器

1.6 VIM快捷鍵大俠

網上搜集的幾個VIM常用快捷鍵匯總圖,非常實用。

![](https://appwk.baidu.com/naapi/doc/view?ih=1090&o=jpg_6_0_______&iw=2000&ix=0&iy=652&aimw=2000&rn=1&doc_id=8e9eeafcf705cc1755270957&pn=1&sign=80c12618971a85f682dbaf264ea3616e&type=1&app_ver=2.9.8.2&ua=bd_800_800_IncredibleS_2.9.8.2_2.3.7&bid=1&app_ua=IncredibleS&uid=&cuid=&fr=3&Bdi_bear=WIFI&from=3_10000&bduss=&pid=1&screen=800_800&sys_ver=2.3.7)
![](https://images2015.cnblogs.com/blog/745893/201509/745893-20150928164335590-1666544744.png)

2. VIM私人定制

????前面介紹了VIM的一些常用的基本的操作,其實這些只是VIM的基本入門操作,它還有很多其他的操作和功能,這裏不詳細介紹,有需要的朋友,可以直接 :help 查看VIM的幫忙以學習更多的操作方法。

????下面開始我們的定制部分,這一部分主要介紹一些常用的VIM插件。沒有安裝插件的VIM已經為我們提供了相當多的功能,但是有些功能用起來非常難受。好在大牛們針對VIM開發了很多實用插件,這大大簡化了VIM的操作。下面主要介紹一些平常開發中常用的插件的使用方法。

我的VIM配置:https://github.com/tshfut/tSuai_vim

2.1 主題定制

????VIM默認提供了很多主題,但我獨愛Visual studio的默認淺色主題,而這個主題VIM裏面卻沒有,無賴只能自己動手定制,只需要找一個已經存在的vim主題,copy一份放到.vim/colors目錄下,然後根據裏面的配置選項,設置自己喜歡的顏色即可。

配置好後,直接在.vimrc文件裏面將自己的VIM主題設置為默認即可:

colorscheme Porsche

colorscheme space-vim-dark

????我自己的經常使用的vim主題主要有兩個,一個淺色(類似Visual Studio),一個深色(space-vim-dark),都放下github上面了.

地址:https://github.com/tshfut/Porsche

????上兩個配色截圖:

技術分享圖片 技術分享圖片

2.1 文件瀏覽

????前面介紹了,使用 :Explore 命令可以查看文件目錄樹,但仍然覺得不方便,可以使用NERDTree插件來替代,NERDTree提供了非常好的文件目錄可視化操作,支持文件展開、文件夾/文件區分標識等。

????相關的配置如下:


"let g:NERDTree_title=‘NERD Tree‘
"let g:winManagerWindowLayout=‘NERDTree|TagList,Tarbar‘
nmap mt :if IsWinManagerVisible() WMToggle else WMToggle:q endif "
nmap wm :NERDTreeToggle
autocmd vimenter * NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") ) | q | endif

function! NERDTree_Start()
exec ‘NERDTree‘
endfunction

function! NERDTree_IsValid()
return 1
endfunction

????使用效果如下圖所示:

技術分享圖片

2.1 移動擴展

2.1 窗口大小

2.1 文件切換

2.1 高亮文本

2.1 代碼跳轉

2.1 文件瀏覽

2.1 文件瀏覽

參考資料:

  1. https://www.cnblogs.com/chenlogin/p/6245958.html

VIM常用技巧總結