vim vimdiff的操作 Shell: Ctrl + R (反向尋找曆史命令) vim:vim 從 vim7 開始加入了多標籤切換的功能, 相當於多視窗. 之前的版本雖然也有多檔案編輯功能, 但是總之不如這個方便啦。用法::tabnew [++opt選項] 〔+cmd〕 檔案 建立對指定檔案新的tab:tabc 關閉當前的tab:tabo 關閉所有其他的tab:tabs 查看所有開啟的tab:tabp 前一個:tabn 後一個標準模式下:gt , gT 可以直接在tab之間切換。還有很多他命令, 看官大人自己, :help table 吧。 多視窗建立及焦點切換:在Vim中開多視窗其實比較簡單,也有不只一種方法,直接使用命令:new預設就是開啟一個水平分割的新視窗。另外一個命令就是:split(sp)。但是預設水平分割多少有點不爽,因為本來螢幕就是寬屏的,代碼幾乎不會寫那麼長了,而真正缺少的垂直空間,所以這個時候就要用到垂直分割了,命令是:vsplit(vs),很簡單了一目瞭然。開啟了這麼多視窗不知道如何切換肯定不行啦。切換也很簡單,按鍵組合ctrl+w,然後通過j/k,來錨定視窗,注意看好視窗游標變化。不過個人感覺這樣比較麻煩,每切換一次視窗都要先按按鍵組合才行。還好還有另一種方法,那就是直接連續按兩次ctrl+w按鍵組合,vim會自動跳到下一個視窗。另外更改視窗寬度的命令是: Crtl+w > 將當前視窗向右邊擴充一行,將 > 換成 < 就是向左邊擴充一行。也可以在之前使用數字代表擴充的行數, 5 Ctrl+w > ,向右邊擴充5行。更改視窗高度類似,只是命令是Ctrl+w + ,增加高度,- 減小高度。 vimdiff: 啟動vimdiff方法一:# vimdiff FILE_LEFT FILE_RIGHT方法二:# vim -d FILE_LEFT FILE_RIGHT方法三:# vim FILE_LEFT 之後開啟vim後輸入:vertical diffsplit FILE_RIGHT 視窗布局切換Ctrl-w K(把當前視窗移到最上邊)Ctrl-w H(把當前視窗移到最左邊)Ctrl-w J(把當前視窗移到最下邊)Ctrl-w L(把當前視窗移到最右邊) 視窗大小調整Ctrl-w = (調整為等大)Ctrl-w - (縮小高度)Ctrl-w + (增加高度)Ctrl-w >/< (向右/左調整寬度)視窗焦點切換,即切換當前視窗CTRL-w h 跳轉到左邊的視窗CTRL-w j 跳轉到下面的視窗CTRL-w k 跳轉到上面的視窗CTRL-w l 跳轉到右邊的視窗CTRL-w t 跳轉到最頂上的視窗CTRL-w b 跳轉到最底下的視窗CTRL-w w 跳轉到另一個視窗CTRL-w CTRL-w 跳轉到另一個視窗,同CTRL-w w游標移動移動游標,切分視窗會同步移動,使用:set noscrollbind命令可取消同步]c 跳到下一個不同的地方[c 跳到上一個不同的地方上下文摺疊預設情況下,vimdiff會將檔案中不同之處上下6行之外的相同文本摺疊隱藏,可通過 :set diffopt=context:3 修改顯示的上下文行數。zo 開啟摺疊 (Folding Open。據說使用 “z" 字母來代替,因為 “z" 更像是一個摺紙的樣子)zc 關閉摺疊 (Folding Close)其他摺疊 zf 建立摺疊(使用數字表示建立有當前行到下多少行的摺疊,比如3j就建立包括4行的摺疊) zo 開啟摺疊(l也可以開啟摺疊) zc 關閉當前摺疊 zm 關閉所有摺疊 zr 開啟所有摺疊 zE 刪除所有摺疊 zd 刪除當前摺疊 za 若當前開啟則關閉,若當前關閉則開啟 zj 到下一摺疊的開始處 zk 到上一摺疊的末尾檔案合并dp (diff put)將當前視窗游標位置處的內容複寫到另一視窗do (diff obtain)將另一視窗游標位置處的內容複寫到當前視窗diffupdate 重新比較兩個檔案,如果手動修改檔案的話有時不會自動同步檔案操作yy 複製當前行nyy 複製當前行開始的n行dd 刪除當前行ndd 刪除當前行開始的n行p 粘貼u 撤銷CTRL-r 重複(即取消撤銷)wa 全部儲存wqa 全部儲存後退出qa 全部退出qa! 全部強制退出,不儲存檔案修改 vim -o file1 file2 橫向開啟兩個視窗顯示兩個檔案內容vim -O file1 file2 縱向開啟 書籤功能: ma 添加書籤a `a 跳轉到書籤a 行移動: [n] >> 將當前行右移一個單位(tab) [N] << 將當前行左移一個單位 尋找功能: /word 向後尋找word, n繼續向下尋找?word 向前尋找word * 尋找游標所在處的單詞,向下尋找 # 尋找游標所在處的單詞,向上尋找 對齊功能:設定檔~/.vimrc: set autoindent[n] ==set autoindent跳轉功能:“[{” 跳轉到包含語句的開始處"]}" 跳轉到包含語句的結尾處"[[" 跳轉到包含語句的函數開始處“][" 跳轉到包含語句的函數結尾處 別名功能:ab abbr stringeg: ab mylog pr_info("LC112 [%s] called====\n", __func__);當輸入mylog時, 會自動替換為pr_info("LC112 [%s] called====\n", __func__); 類似C語言的宏功能 還可以在每個目錄中建立一個自己的.vimrc檔案,以適應不同的需要。例如,可以在C++來源程式所在的目錄中建立一個適應於程式開發 的.vimrc檔案,可以在編寫文檔的目錄中建立一個適應於文檔編寫的.vimrc檔案。但應注意,僅當使用者主目錄的.exrc檔案包含"set exrc“ 命令時,其它目錄中的.vimrc檔案才能發揮作用。