一、模式轉換命令
vim主要有三種模式:命令模式(Normal Mode)、輸入模式(Insert Mode)和底線命令模式(Command-Line Mode)。
從命令模式切換到輸入模式:i:在當前光標所在位置開始輸入文本。a:在當前光標所在位置的下一個字符開始輸入文本。o:在當前光標所在行的下方插入一個新行,并進入插入模式。O:在當前光標所在行的上方插入一個新行,并進入插入模式。I:在當前光標所在行的行首開始輸入文本。A:在當前光標所在行的行尾開始輸入文本。從輸入模式切換回命令模式:按下Esc鍵。從命令模式切換到底線命令模式:在命令模式下按下冒號(:)。
二、光標移動命令
字符間跳轉:h:將光標向左移動一個字符。j:將光標向下移動一行。k:將光標向上移動一行。l:將光標向右移動一個字符。單詞間跳轉:w:移動到下一個單詞的開頭。e:移動到當前單詞或下一個單詞的末尾。b:移動到當前單詞或上一個單詞的開頭。行首行尾跳轉:^:跳轉到當前行的第一個非空白字符。0:跳轉到當前行的開頭(包括空白字符)。$:跳轉到當前行的末尾。行間移動:G:將光標移動到文件的末尾。gg:將光標移動到文件的開頭。{行數}G:將光標移動到指定行(例如10G移動到第10行)。
三、編輯命令
刪除命令:x:刪除當前光標所在處的字符。dd:刪除當前行(剪切當前行)。d$:刪除從光標當前位置到行尾的內容。d^:刪除從光標當前位置到行首的內容(不包括空白字符)。d0:刪除從光標當前位置到行首的內容(包括空白字符)。復制命令:yy:復制當前行。p:粘貼剪貼板內容到光標下方。P:粘貼剪貼板內容到光標上方。修改命令(進入輸入模式并替換指定內容):c$:從光標當前位置到行尾的內容被刪除,并進入輸入模式。c^:從光標當前位置到行首的內容(不包括空白字符)被刪除,并進入輸入模式。c0:從光標當前位置到行首的內容(包括空白字符)被刪除,并進入輸入模式。cw:刪除當前單詞并進入輸入模式。ce:刪除從光標當前位置到當前單詞末尾的內容,并進入輸入模式。cb:刪除從光標當前位置到上一個單詞開頭的內容,并進入輸入模式。cc:刪除整行并進入輸入模式。撤銷和重做:u:撤銷上一次操作。Ctrl+r:重做上一個被撤銷的操作。
四、底線命令模式命令
在底線命令模式下,可以輸入一些特定的命令來執行文件操作、搜索替換等。
文件操作::w:保存文件。:q:退出vim。:wq:保存文件并退出vim。:q!:不保存并強制退出vim。搜索替換:/pattern:從當前光標所在處向文件尾部查找指定的模式(pattern)。?pattern:從當前光標所在處向文件首部查找指定的模式(pattern)。n:查找下一個匹配項。N:查找上一個匹配項。:%s/old/new/g:在整個文件中將old替換為new(全局替換)。其他命令::set nu:顯示行號。:set nonu:隱藏行號。:noh:取消搜索后的高亮顯示。
五、可視模式命令
可視模式用于選擇文本并進行批量操作。
進入可視模式:v:按字符選定。V:按行選定。Ctrl+v:進入可視塊模式。操作選定文本:y:復制選定的文本塊到緩沖區。d:剪切選定的文本塊到緩沖區。
六、其他常用命令
重復上一個命令:.翻屏操作:Ctrl+f:向文件尾部翻一屏。Ctrl+b:向文件首部翻一屏。Ctrl+d:向文件尾部翻半屏。Ctrl+u:向文件首部翻半屏。多文件操作:在vim后同時輸入多個文件名,例如vim file1 file2,可以在vim中同時打開多個文件。:next或:n:打開下一個文件。:prev:打開上一個文件。:ls:列出打開的文件。:buffer N:切換到第N個文件。窗口分割:Ctrl+w, s或:split:水平分割窗口。Ctrl+w, v或:vsplit:垂直分割窗口。Ctrl+w, w:切換到下一個窗口。Ctrl+w, j或Ctrl+w, k:在水平分割的窗口中切換。Ctrl+w, h或Ctrl+w, l:在垂直分割的窗口中切換。定制vim的工作特性:可以通過修改配置文件(如全局的/etc/vimrc或個人的~/.vimrc)來永久定制vim的工作特性。在vim中,也可以使用:set命令來臨時修改一些設置,例如:set ai啟用自動縮進,:set noai禁用自動縮進。