運維日記006 - vim操作總結(二、常用命令)
vim有三種基本操作模式:命令模式、編輯模式和命令行模式。
命令模式
啓動vim即進入命令模式,在其他的模式下,也可以通過按ESC鍵進入命令模式。在該模式下,可以控制光標的移動或者進行剪切、複製粘貼或者刪除文本等操作。在該模式下我們需要記憶的快捷鍵是最多的。去粗取精,我總結了以下命令。
- 光標定位類命令
按鍵組合 | 說明 |
---|---|
gg | 光標定位文件首行 |
G | 光標定位在文件末行 |
nG | n爲數字,光標定位到第n行 |
n[Enter] | n爲數字,光標向下移動n行 |
n[Space] | n爲數字,光標向右移動n個字符 |
0或Home | 光標定位到行首 |
$或End | 光標定位到行尾 |
方向鍵 | 控制光標上下左右移動 |
- 文檔編輯類命令
按鍵組合 | 說明 |
---|---|
i | 進入編輯模式(離開命令模式),在光標當前位置插入字符 |
a | 先將光標移到下一個字符,然後進入插入模式 |
o | 在當前行後開啓一個空白行,然後光標定位在空白行首,並進入插入模式 |
r | 進入替換模式,替換當前光標位置的字符 |
x | 刪除當前光標位置的字符 |
dd | 剪切當前行 |
ndd | n爲數字,剪切當前行開始的n行 |
m,nd | m,n爲數字,剪切m-n行 |
D | 刪除當前字符至行尾 |
yy | 複製當前行 |
nyy | n爲數字,複製當前行開始的n行 |
p(小寫) | 在當前光標位置之後粘貼 |
P(大寫) | 在當前光標位置之前粘貼 |
u | Undo,撤銷剛纔的操作 |
CTRL+r | Redo,還原剛纔的撤銷 |
編輯模式
在命令模式下,通過i(insert)、a(append)、r(replace)或o進入編輯模式。在該模式下主要是輸入文本,沒有什麼好說的。編輯模式和命令行模式之間沒有直接通道,必須經由命令模式過渡。按ESC可返回命令模式。
命令行模式
在命令模式下,通過:或/或?進入命令行模式。其中/和?一般是進行文本查找。
- 一般命令
命令 | 說明 |
---|---|
:q | 不保存文件並退出 |
:q! | 強制不保存文件並退出 |
:wq | 保存文件並退出 |
:!cmd | 啓動一個subshell來執行cmd |
:n | 切換到下一個文件(假如你指定打開了多個文件的話) |
:數字 | 跳轉到指定行 |
- 查找與替換命令
命令 | 說明 |
---|---|
/pattern | 往前搜索pattern |
?pattern | 往後搜索pattern |
n | 尋找下一個匹配的文本 |
N | 反方向尋找下一個匹配的文本 |
:s/word1/word2 | 搜索和替換當前行的第一個匹配項 |
:s/word1/word2/g | 搜索和替換當前行的全部匹配項 |
:%s/word1/word2/g | 全文搜索和替換 |
:nohl | 取消搜索後的高亮 |
嚴格說n和N應屬於命令模式了,但爲了總結方便放到這裏了。
總之,vim的命令極其多,不過,並未一定要熟記每一個命令才能熟練掌握vim,其實每個人都只是用了vim的一小部分功能而已。