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