:q!
表示强行退出且不会保存本次的任何修改
:q
表示正常退出,如果有没有保存的修改,会有相应的提示
:x
表示保存后再退出,相当于 :wq
在 normal 模式下,将光标移动到指定的字符处,按下 x
键即可删除该字符,
如果想要从光标处一次连续删除 5 个字符,那么先按数字键 5
,再按 x 键,以此类推。
在 normal 模式下,将光标移动到指定的一行,连按两次 d
键即可删除该行,
如果想要从光标处一次连续删除 3 行文本, 那么先按数字键 3
,再连按两次 d
键,以此类推。
在 normal 模式下,按下 dw
键,可从光标处删除直到下一个单词的起始处(不包括下个单词的首字母),
按下 d$
键,可从光标处删除直至行尾。
如果你误删了过多的内容,按下 Esc
键回到 normal 模式,再按下 u
键,就可以撤销上一次的操作。
给多行代码添加注释,在 normal 模式下,按下数字 0
键跳到行首,
按下 Ctrl + v
键进入可视化模式(VISUAL BLOCK),
再按 j
或 k
键下移或上移来选中指定多行的首列,
再按下大写的 I
键进入 insert 模式,输入要添加的注释符,例如 #
//
,
最后按下 Esc
键,然后就 ok 了。
批量删除多行的注释,同样按下 Ctrl + v
键进入可视化模式,
再按 h
j
k
L
键选中单列或者多列,
最后按 d
或 x
键就将选中部分删除了。
在 normal 模式下,按下大写的 Y
键或 yy
可复制当前行;
命令 3yy
复制从当前行开始往后的连续 3 行;
命令 yW
复制从当前光标位置到下一个单词的开头部分;
命令 y$
复制从当前光标位置到当前行的末尾部分;
命令 y0
复制从当前光标位置到行首部分;
命令 yG
复制从当前行到文件末尾部分。
在 normal 模式下,按下大写的 P
键将剪切板中的文本粘贴到光标之前;
按下 p
键将剪切板中的文本粘贴到光标位置之后。
在 normal 模式下移动光标
l
向右移动一个字符;
h
向左移动一个字符;
j
向下移动一行;
k
向上移动一行;
w
移动到下一个单词或标点符号的开头;
W
移动到下一个单词的开头,忽略标点符号;
b
移动到上一个单词或标点符号的开头;
B
移动到上一个单词的开头,忽略标点符号;
以上命令,可以在前面加上一个数字,表示指定命令执行的次数。比如,命令 5j
导致光标向下移动 5 行。
gg
移动到文件的第一行;
G
移动到文件最后一行;
0
(数字 0 键) 移动到当前行的行首;
^
移动到当前行的第一个非空字符;
$
移动到当前行的末尾;
nG
移动到第 n 行,例如 100G
移动到文件的第 100 行。
ctrl + f
向下翻一页;
ctrl + b
向上翻一页;
ctrl + d
向下翻半页;
ctrl + u
向上翻半页。
在行内快速移动的“升级版” f/F'x'
,单引号中的内容可以用任意字符代替,例如 f'a' / F'a'
:
fx:将光标移到右边的第一个字符 x 上,继续按 ;
(分号),可以延相同的方向找到下一个 x,继续按 ,
(逗号),可以延反方向找到下一个 x;
Fx:将光标移到左边的第一个字符 x 上,继续按 ;
(分号),可以延相同的方向找到下一个 x,继续按 ,
(逗号),可以延反方向找到下一个 x。
H
将光标移动到屏幕上方;
M
将光标移动到屏幕中间;
L
将光标移动到屏幕下方;
zz
将当前光标所在行居中。
%
让光标在成对的括号间跳转,例如大括号、圆括号、方括号等,该功能在写代码时经常使用;
[[
将光标移动到上一个代码段(或函数)的行首;
]]
将光标移动到下一个代码段(或函数)的行首;
{
将光标移动到上一个空行行首;
}
将光标移动到下一个空行行首。