参考
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_
,到该行最后一个非空白字符处