一般模式:
移動:
h或←光標左移一個字符。如果是20h,表示左移20個字符。
j或→光標下移一個字符 同上
k或↑光標上移一個字符 同上
l或↓光標右移一個字符 同上
[Ctrl]+[f]屏幕向下移動一頁 Page Down!!
[Ctrl]+[b]屏幕向上移動一頁 Page Up !!
0或[Home]移動到此行最前面字符處!!
$或[End]移到光標所在行的行尾!!
H 光標移到當前屏幕最上方行的第一個字符!!
M光標移到當前屏幕中間行的第一個字符!!
L光標移動到當前屏幕最下方行第一個字符!!
G移到此文件最後一行!!!
nG移到第n行
gg相當於1G,即移到第一行!!!
n[Enter]光標下移n行
查找
/word向下查找單詞“word”(!!!)
?word向上查找單詞“word”(!!!)
n表示重複前一個查找操作
N與n相反(反向查找)
複製粘貼:
yy複製光標所在行(!!)
nyy複製光標所在向下n行(n爲數字)
y1G複製光標所在行到第一行所有數據
yG複製光標所在行到最後一行所有數據
y$複製光標所在處到同行最後一個字符
y0複製光標所在處到同行第一個字符
p將已複製的數據粘貼到光標所在下一行
P將已複製的數據粘貼到光標所在上一行
u復原前一個操作(類似於windows中的ctrl+z)!!!
Ctrl+r恢復一個操作。
刪除:
x向後刪除一個字符
nx向後刪除n個字符(n爲數字)
X向前刪除一個字符
dd刪除光標所在行(!!!)
ndd刪除光標所在行以下n行(n爲數字,包含當前行在內)
d1G刪除光標所在行到第一行所有數據(包括所在的行)
dG刪除光標所在行到最後一行(!!)
d$或d end刪除光標所在處到同行最後一個字符(!!)
d0或d home刪除光標所在處到同行第一個字符。(!!)
編輯模式:
進入編輯模式 : ? / 三個符號任意都可以進入命令模式
i從光標所在處插入(!!!)
a從光標所在下一個字符處插入
A從光標所在行最後一個字符處插入(!!)
o在光標所在處下一行插入新的一行(!!)
O在光標所在處上一行插入新的一行(!!)
r替換光標所在處字符一次
R一直替換光標所在處文字直到按下Esc(!!!)
命令模式:
進入命令模式: ? /
:w [filename] 另存爲filename
:r [filename] 讀取filename指定文件中的內容到光標所在的行。
:n1,n2 w [filename] 將n1到n2行另存爲filename
:! command 臨時切換到命令行模式下執行command命令。
例如 “:!find / -name Helllo.java”即可在vim當中執行命令。
:wq 保存後離開
:q 不保存離開(未改可以離開,如果修改了需要q!強制離開)
:q! 不保存離開
:set nu 顯示行號 (number)
:set nonu 取消顯示行號 (noNumber)
替換
:s/word1/word2/g 在當前行將word1替換成word2
:%s/word1/word2/g 在當前文件將word1替換成word2
:n1,n2s/word1/word2/g在n1到n2行查找word1替換成word2
:%s/word1/word2/gc 同上,在替換前會提示是否替換。只能單行確認,需要逐個確認。
出現以下提示,
(y/n/a/q/l/^E/^Y)
y表示yes,n表示no,a表示all(限光標當前到最後一行),q表示quit,l表示替換後移動光標到行首,^E(Ctrl+E)表示向下翻,^y(Ctrl+Y)表示向上翻。