1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| # :h operator 来查阅完整的列表
>G 下一行到末行缩进, 使用`>+ENTER`能达到相同效果
>> 仅缩进当前行
. 重复执行上一次命令
A 在当前行尾插入内容,相当于`$a`
J 将当前行与下一行连接到一起
f/t(F/T) 向后向前查找字符, 使用`;`进行下一个查找, 使用`,`进行反向查找
s 删除当前字符并进入插入模式
o 添加新行并进入插入模式
* 高亮文本中所有与光标处相同的单词, 使用`n\N`进行下一个
db 反向删除多个字符直至空格或者开头
dw 分多钟情况:
1. 当光标位于单词开头时, 删除整个单词, 直至遇到任意符号或者空格字符
2. 当光标处于单词非开头结尾时, 删除多个字符, 直至遇到任意符号或者空格字符
3. 当光标位于非单词末尾字母时, 反向删除一个字符
d2w 删除连续两个单词, 使用`2dw`或者`dw.`或者`c2w`能达到相同效果
cw 删除光标直到单词末尾, 并进入`插入`模式
C 删除光标直到行尾
daw `delete a word` 删除整个单词, 无论光标处于何处, 并删除单词之前的空格(如果有的话)
dap 删除整个段落, 行前行后都有空格的那种才叫段落
b/B 反向定位到下一个单词开头或者单词结尾(如果单词后面非换行的符号的话)
# 复制与粘贴
yyp 复制整行到下一行
yap 复制整段内容到寄存器
gp 粘贴整段内容到光标之后, 并将光标移动到所粘贴内容下方, 这一点与直接使用`p`光标位置不变所不同
yiw 复制当前单词到无名寄存器
"0p 复制专用寄存器`0`
"ayiw 复制当前单词到名为`a`的寄存器
"ap 粘贴寄存器名为`a`的内容
"_dd 寄存器
"+p 将外部剪切板内容粘贴到光标之后, 或者在插入模式下使用快捷键`<C-r>+`
dl 删除一个字符, 等同于`x`
gU 将字符全部转换为大写, 相对的, `gu`将字符转换为小写, `g~`用于翻转大小写, 可视化选择中可用, 常用组合`gUaw`
gv 重选上次高亮区域
# 光标移动操作
<C-e> 向下翻页
<C-y> 向上翻页
<ESC-.> 新增空行
0/^ 移动到实际行首/移动到非空白字符行首
$/g$ 移动到实际行尾/移动到屏幕行尾
w/e 正向移动到单词开头/结尾
b/ge 反向移动到当前单词或者上一个单词开头/结尾
mm/`m 标记光标当前位置以及跳转到标记位置
`` 来回跳转上次标记位置
`. 上次修改的位置
`^ 上次插入的位置
`< 上次高亮选区的起始位置
`> 上次高亮选取的末尾位置
% 在成对符号间进行跳转
<LINE_NUMBER>G 跳转到指定行
(/) 跳转到上一句/下一句开头
{/} 跳转到上一段/下一段的开头
:changes 查看修改
<C-p>或者<C-n> 触发自动补全
<C-x><C-k> 触发字典自动补全, 前提是开启拼写检查`:set spell`
<C-x><C-l> 触发行模式自动补全, 注意: 只适用于整行补全
<C-x><C-p> 触发单词自动补全
<C-x><C-f> 触发文件名自动补全, linux/Mac下`/home/agou-ops/<C-x><C-f>`, windows下`x:\<C-x><C-f>`
<C-x><C-o> 根据上下文进行自动补全, 多用于编程语言
<C-x>s 在插入模式下使用自动补全功能, 作用和普通模式下的`<C-x><C-k>`相同
|