vim 編輯器是一個基于指令行的工具,是傳奇編輯器 vi 的增強版。盡管圖形界面的富文本編輯有很多,但是熟悉 vim 對于每一位 linux 的使用者都能有所幫助——無論你是經驗豐富的系統管理者,還是剛上手樹莓派的新手使用者。
這個輕量級的編輯器是個非常強大的工具。在有經驗的使用者手中,它能完成不可思議的任務。除了正常的文本編輯功能以外,它還支援一些進階特性。例如,基于正規表達式的搜尋和替換、編碼轉換,以及文法高亮、代碼折疊等的程式設計特性。
使用 vim 時有一個非常重要的一點需要注意,那就是按鍵的功能取決于編輯器目前的“模式”。例如,在“普通模式”輸入字母<code>j</code>時,光标會向下移動一行。而當你在“插入模式”下輸入字元,則隻是正常的文字錄入。
下面就是速查表,以便于你充分利用 vim。
<a target="_blank"></a>
快捷鍵
功能
<code>esc</code>
從目前模式轉換到“普通模式”。所有的鍵對應到指令。
<code>i</code>
“插入模式”用于插入文字。回歸按鍵的本職工作。
<code>:</code>
“指令行模式” vim 希望你輸入類似于儲存該文檔指令的地方。
<code>h</code>
光标向左移動一個字元
<code>j</code> 或 <code>ctrl + j</code>
光标向下移動一行
<code>k</code> 或 <code>ctrl + p</code>
光标向上移動一行
<code>l</code>
光标向右移動一個字元
<code>0</code>
(數字 0)移動光标至本行開頭
<code>$</code>
移動光标至本行末尾
<code>^</code>
移動光标至本行第一個非空字元處
<code>w</code>
向前移動一個詞 (上一個字母和數字組成的詞之後)
向前移動一個詞 (以空格分隔的詞)
<code>5w</code>
向前移動五個詞
<code>b</code>
向後移動一個詞 (下一個字母和數字組成的詞之前)
向後移動一個詞 (以空格分隔的詞)
<code>5b</code>
向後移動五個詞
<code>g</code>
移動至檔案末尾
<code>gg</code>
移動至檔案開頭
<code>(</code>
跳轉到上一句
<code>)</code>
跳轉到下一句
<code>{</code>
跳轉到上一段
<code>}</code>
跳轉到下一段
<code>[[</code>
跳轉到上一部分
<code>]]</code>
跳轉到下一部分
<code>[]</code>
跳轉到上一部分的末尾
<code>][</code>
跳轉到上一部分的開頭
<code>a</code>
在光标後插入文本
在行末插入文本
在光标前插入文本
<code>o</code>
(小寫字母 o)在光标下方新開一行
(大寫字母 o)在光标上方新開一行
<code>:r [filename]</code>
在光标下方插入檔案 [filename] 的内容
<code>:r ![command]</code>
執行指令 [command] ,并将輸出插入至光标下方
<code>x</code>
删除光标處字元
<code>dw</code>
删除一個詞
<code>d0</code>
删至行首
<code>d$</code>
删至行末
<code>d)</code>
删至句末
<code>dgg</code>
删至檔案開頭
<code>dg</code>
删至檔案末尾
<code>dd</code>
删除該行
<code>3dd</code>
删除三行
<code>r{text}</code>
将光标處的字元替換成 {text}
<code>r</code>
進入覆寫模式,輸入的字元将替換原有的字元
<code>yy</code>
複制目前行至存儲緩沖區
<code>["x]yy</code>
複制目前行至寄存器 x
<code>p</code>
在目前行之後粘貼存儲緩沖區中的内容
在目前行之前粘貼存儲緩沖區中的内容
<code>["x]p</code>
在目前行之後粘貼寄存器 x 中的内容
在目前行之前粘貼寄存器 x 中的内容
<code>u</code>
撤銷最後的操作
<code>ctrl+r</code>
重做最後撤銷的操作
<code>/search_text</code>
檢索文檔,在文檔後面的部分搜尋 search_text
<code>?search_text</code>
檢索文檔,在文檔前面的部分搜尋 search_text
<code>n</code>
移動到後一個檢索結果
移動到前一個檢索結果
<code>:%s/original/replacement</code>
檢索第一個 “original” 字元串并将其替換成 “replacement”
<code>:%s/original/replacement/g</code>
檢索并将所有的 “original” 替換為 “replacement”
<code>:%s/original/replacement/gc</code>
檢索出所有的 “original” 字元串,但在替換成 “replacement” 前,先詢問是否替換
<code>m {a-za-z}</code>
在目前光标位置設定書簽,書簽名可用一個大小寫字母({a-za-z})
<code>:marks</code>
列出所有書簽
<code>{a-za-z}</code>
跳轉到書簽 {a-za-z}
<code>v</code>
進入逐字可視模式
進入逐行可視模式
退出可視模式
<code>~</code>
切換大小寫
<code>d</code>
<code>c</code>
變更
<code>y</code>
複制
<code>></code>
右移
<code><</code>
左移
<code>!</code>
通過外部指令進行過濾
<code>:q</code>
退出 vim,如果檔案已被修改,将退出失敗
<code>:w</code>
儲存檔案
<code>:w new_name</code>
用 new_name 作為檔案名儲存檔案
<code>:wq</code>
儲存檔案并退出 vim
<code>:q!</code>
退出 vim,不儲存檔案改動
<code>zz</code>
退出 vim,如果檔案被改動過,儲存改動内容
<code>zq</code>
與 :q! 相同,退出 vim,不儲存檔案改動
僅僅是這樣是否還不足以滿足你?别擔心,我們已經為你整理好了一份下載下傳版的速查表,以備不時之需。
<a href="http://www.maketecheasier.com/cheatsheet/vim-keyboard-shortcuts-cheatsheet/" target="_blank">點此下載下傳(英文)</a>
原文釋出時間為:2017-01-25
本文來自雲栖社群合作夥伴“linux中國”