普通模式下按v選擇區域
x:刪除光標處字符
G:最后一行
gg:第一行
yy:復制當前行
p:粘貼
u:撤銷上一步操作
dd:刪除當前行
shift+zz:保存退出
b:前移一個字
w:后移一個字
hjkl:光標左下上右
0:行首
$:行尾
f+字母:(從左往右)移動到相應的字母
F+字母:(從右往左)移動到相應的字母
d+$:刪除光標后的所有字符
C:刪除光標后的所有字符
d+0:刪除光標前的所有字付
命令模式輸入行號
ctrl+r:取消撤銷
set nu:給當前內容設置上行號
e!:重新打開文件
dw 刪除到下一個單詞開頭
de? ? ? ? ? ? 刪除到本單詞末尾
dE? ? ? ? ? ? 刪除到本單詞末尾包括標點在內
db? ? ? ? ? ? 刪除到前一個單詞
dB? ? ? ? ? ? 刪除到前一個單詞包括標點在內
### 替換命令
:'<,'>s/替換項/替換為/g
以下命令將文中所有的字符串idiots替換成managers:
:1,$s/idiots/manages/g
通常我們會在命令中使用%指代整個文件做為替換范圍:
:%s/search/replace/g
以下命令指定只在第5至第15行間進行替換:
:5,15s/dog/cat/g
以下命令指定只在當前行至文件結尾間進行替換:
:.,$s/dog/cat/g
以下命令指定只在后續9行內進行替換:
:.,.+8s/dog/cat/g
你還可以將特定字符做為替換范圍。比如,將SQL語句從FROM至分號部分中的所有等號(=)替換為不等號(<>):
:/FROM/,/;/s/=/<>/g
在可視化模式下,首先選擇替換范圍, 然后輸入:進入命令模式,就可以利用s命令在選中的范圍內進行文本替換。
1、刪除每行前10個字符:
:%s/^.\{10\}//
其中,%表示所有行,s表示替換,"%s"可用"1,$"代替(下同);正則表達式"/^.\{10\}//"中,^表示行首;"."表示要刪除的字符個數,".\{10\}"表示刪除10個字符,可用10個"."表示;
2、刪除每行后10個字符
:%s/.\{10\}$//
其中,"$"表示行尾,其他同上;