1、 移動光標
H #移到屏幕的左上角
M #移到屏幕的中間行開頭
L #移到屏幕的最后一行
[ #移到文件開始位置 (雙擊)
] #移到文件結束位置(雙擊)
:n #移到文件的第n行
Ctrl + b #屏幕上卷一個菜單
Ctrl + F #屏幕下卷一個菜單
h # 將光標左移一格
l # 將光標右移一格
j # 將光標下移一格
k # 將光標上移一格
w # 將光標移到下一個小字的前面
b # 將光標移到前一個小字的前面
0 # 把光標移到當前行的第一個字符處
$ # 把光標移到當前行的最后一個字符處
2、 修改內容
nx #刪除由光標位置起始的n個字符(含光標位置,按一個x表示刪除光標所在的字符)
ndw #刪除光標位置其實的n個字符組(dw刪除光標所在的單詞)
d0 #將行的開始到光標位置的字符全部刪除
d$ 或D #將光標位置起始到行尾的字符全部刪除
ndd #將光標位置起始的n行(整行)刪除(dd表示刪除光標所在行)
:start,endd #刪除文件的第start到end行
rc #把光符所在字符替換成c
R #覆蓋本行內容
u #恢復上一次的修改
cw #改變光標所在單詞
C #改變一行光標位置以后的部分
cc或S #修改一整行
3、 尋找替換
/pattern #向后尋找指定的pattern ,若遇到文件尾,則從頭再開始。
?pattern #向前尋找指定的pattern ,若遇到文件頭,則從尾再開始。
n #在上次指定的方向上,再次執行
N #在上次指定的方向的相反方向上,再次執行上次定義的查找
:%s/old/new/g #查找所有old并替換為new
:start,ends/old/new #替換指定區域
4、 編輯切換
a #在光標之后開始輸入文本
A #在行尾開始輸入文本
I #在光標之前開始輸入文本
i #在行首第一個非空白字符前輸入文本
o #在光標所在行后插入一空行
O #在光標所在行前插入一空行
5、 復制及移動文件
yy #把當前行放入緩沖區
yw #把光標所在的單詞放入緩沖區
p #將緩沖區內容取到光標所在行的下面一行
P #將緩沖區內容取到光標所在行的上面一行
:first,last co dest #將first 到last行的數據復制到目標行(dest)下面
:Start,end m dest #將start 到 end行的數據移動到目標行(dest)下
:r filename #將指定文件的內容讀入光標所在行下
6、 其他
vi #進入vi而不讀入任何文件
vi filename #進入vi并讀入指定名稱的文件(新、舊文件均可)。
vi +n filename #進入vi并且由文件的第幾行開始。
vi + filename #進入vi并且由文件的最后一行開始
vi filename(s) #進入vi并且將各指定文件列入名單內,第一個文件先讀入
u #取消前一指令
Ctrl + l #刷新屏幕顯示
:set nu #顯示文件的行號,但不會存文件
:set nonu #解除行號顯示
e! #重新裝入當前文件,若當前文件有改動,則丟棄以前的改動
:sh #啟動sh ,從sh中返回可用exit或ctrl+d
:! Command #執行命令command
!! #重新執行上次的:! Command子命令
7、 整理的腦圖
https://www.cnblogs.com/zjfjava/category/933176.html