普通模式下按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\}$//
其中,"$"表示行尾,其他同上;