参考
Insert 模式
esc ,退出 Insert 模式,进入 Normal 模式
Normal 模式
i ,进入Insert 模式
x ,删除当前光标所在位置的字符
s ,删除当前光标所在位置的字符并进入 Insert 模式
w ,保存,后面可以加文件名
q ,退出
q! ,强制退出,不保存修改内容
:wq ,保存 + 退出, w 后面可以加文件名
dd ,删除当前行,并把删除的行存入剪切板内
p ,粘贴剪切板
h , ←
j , ↓
k, ↑
l , →
:help <command> , 显示相关命令的帮助
各种插入模式
基本插入
i ,在当前光标前插入
I ,在当前行第一个非空白符前插入
gI ,在当前行的开头插入
a ,在当前光标后插入
A ,在当前行末尾插入
o ,在当前行后插入一个新行
O ,在当前行前插入一个新行
:r !date ,在光标处插入当前日期时间
:r !<command> 可以将 shell 命令的输出插入当前文档
改写插入
cw ,替换从光标所在位置后到一个单词结尾的字符
c[n]w ,替换光标所在位置后 n 个单词,与 [n]cw 作用相同
cl ,替换光标所在位置后的 1 个字符
c[n]l ,替换光标所在位置后 n 个字符,与 [n]cl 作用相同
ch ,替换光标所在位置前 1 个字符
c[n]h ,替换光标所在位置前 n 个字符,与 [n]ch 作用相同
cc ,替换光标所在行
c[n]c ,替换光标所在行及向下的共 n 行,与 [n]cc 作用相同
s ,替换光标所在位置的字符
[n]s ,替换光标所在位置及之后的共 n 个字符
S ,替换光标所在行
[n]S ,替换光标所在行及向下的共 n 行
移动光标
随机移动
hjkl ,←↓→↑
gj ,移动到一段内的下一行
gk ,移动到一段内的上一行
w ,后移一个单词,到下一个单词开头
W ,后移一个单词,到下一个单词开头,会忽略一些标点符号
e ,类似 w ,不过是停留在下一个单词结尾
E ,类似 E ,不过是停留在下一个单词结尾
b ,前移一个单词,停留在开头
B ,前移一个单词,停留在开头,忽略一些标点符号
ge ,前移一个单词,停留在结尾
gE ,前移一个单词,停留在结尾,忽略一些标点符号
( ,前移一句
) ,后移一句
{ ,前移一段
} ,后移一段
+ 或 <enter> ,将光标移动到下一行的第一个非空白字符处
- ,将光标移动到上一行的第一个非空白字符处
f[c] ,将光标移动到同一行的下一个 c 处
F[c] ,将光标移动到同一行的上一个 c 处
t[c] ,将光标移动到同一行的下一个 c 前
T[c] ,将光标移动到同一行的上一个 c 后
; ,配合 fFtT 使用,重复一次刚刚的操作
, ,配合 fFtT 使用,反向重复一次刚刚的操作
匹配移动
/<pattern> ,搜索 pattern 的字符串,语法为正则表达式,可以按 n 切换到下一个匹配位置,按 N 切换到上一个匹配位置
0 ,到该行开头
^ ,到该行第一个非空白字符处
$ ,到该行末尾
g_ ,到该行最后一个非空白字符处