基本必須 i → Insert 模式,按 ESC 回到 Normal 模式. x → 刪當前光標所在的一個字符。 :wq → 存盤 + 退出 (:w 存盤, :q 退出) (注::w 後能夠跟文件名) dd → 刪除當前行,並把刪除的行存到剪貼板裏 p → 粘貼剪貼板 hjkl (強例推薦使用其移動光標,但沒必要需) →你也可使用光標鍵 (←↓↑→). 注: j 就像下箭頭 :help <command> → 顯示相關命令的幫助 插入模式 a → 在光標後插入 o → 在當前行後插入一個新行 O → 在當前行前插入一個新行 cw → 替換從光標所在位置後到一個單詞結尾的字符 快速移動 0 → 數字零,到行頭 ^ → 到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等) $ → 到本行行尾 g_ → 到本行最後一個不是blank字符的位置。 /pattern → 搜索 pattern 的字符串(注:若是搜索出多個匹配,可按n鍵到下一個) NG → 到第 N 行 (注:注意命令中的G是大寫的,另我通常使用 : N 到第N行,如 :137 到第137行) gg → 到第一行。(注:至關於1G,或 :1) G → 到最後一行。 w → 到下一個單詞的開頭。(默認上來講,一個單詞由字母,數字和下劃線組成) e → 到下一個單詞的結尾。 % → 匹配括號移動,包括 (, {, [. (注:你須要把光標先移到括號上) * 和 # → 匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個) fa → 到下一個爲a的字符處,你也能夠fs到下一個爲s的字符。 t, → 到逗號前的第一個字符。逗號能夠變成其它字符。 3fa → 在當前行查找第三個出現的a。 F 和 T → 和 f 和 t 同樣,只不過是相反方向。 拷貝/粘貼 P → 粘貼(注:p/P均可以,p是表示在當前位置以後,P表示在當前位置以前) yy → 拷貝當前行當行於 ddP Undo/Redo u → undo <C-r> → redo 打開/保存/退出/改變文件 :e <path/to/file> → 打開一個文件 :w → 存盤 :saveas <path/to/file> → 另存爲 <path/to/file> :x, ZZ 或 :wq → 保存並退出 (:x 表示僅在須要時保存,ZZ不須要輸入冒號並回車) :q! → 退出不保存 :qa! 強行退出全部的正在編輯的文件,就算別的文件有更改。 :bn 和 :bp → 你能夠同時打開不少文件,使用這兩個命令來切換下一個或上一個文件。(注:我喜歡使用:n到下一個文件) 重複動做 . → (小數點) 能夠重複上一次的命令 N<command> → 重複某個命令N次(如 2dd-刪除2行、3p-粘貼文本3次) 連動命令 <start position><command><end position> command: y (粘貼) d (刪除) v (可視化的選擇) gU (變大寫) gu (變小寫) 等等 如 0y$ 命令意味着: 0 → 先到行頭 y → 從這裏開始拷貝 $ → 拷貝到本行最後一個字符 ye → 從當前位置拷貝到本單詞的最後一個字符。 y2/foo → 拷貝2個 「foo」 之間的字符串。 區域選擇 在visual 模式下,這些命令很強大,其命令格式爲: <action>a<object> 或 <action>i<object> action能夠是任何的命令,如 d (刪除), y (拷貝), v (能夠視模式選擇)。 object 多是: w 一個單詞, W 一個以空格爲分隔的單詞, s 一個句字, p 一個段落。 也能夠是一個特別的字符:"、 '、 )、 }、 ]。 塊操做 <Ctrl + v> 典型列編輯操做: 0 <C-v> <C-d> I-- [ESC] ^ → 到行頭 <C-v> → 開始塊操做 <C-d> → 向下移動 (你也可使用hjkl來移動光標,或是使用%,或是別的) 自動提示 <Ctrl + n>、<Ctrl + p> 在 Insert 模式下,你能夠輸入一個詞的開頭,而後按 <Ctrl + n>或是<Ctrl + p>,自動補齊功能就出現了 宏錄製: qa 操做序列 q, @a, @@ qa 把你的操做記錄在寄存器 a。 因而 @a 會replay被錄製的宏。 @@ 是一個快捷鍵用來replay最新錄製的宏。 例: 在一個只有一行且這一行只有「1」的文本中,鍵入以下命令: qaYp<C-a>q → qa 開始錄製 Yp 複製行. <C-a> 增長1. q 中止錄製. @a → 在1下面寫下 2 @@ → 在2 正面寫下3 如今作 100@@ 會建立新的100行,並把數據增長到 103. 可視化選擇: v, V, <Ctrl + v> 使用 v 和 V 選擇一段文本,而後: J → 把全部的行鏈接起來(變成一行) < 或 > → 左右縮進 = → 自動給縮進 (陳皓注:這個功能至關強大,我太喜歡了) 在全部被選擇的行後加上點東西: <C-v> 選中相關的行 (可以使用 j 或 <C-d> 或是 /pattern 或是 % 等……) $ 到行最後 A, 輸入字符串,按 ESC。 引自:http://coolshell.cn/articles/5426.html