Section 1 基本移动/模式切换
快捷键 |
意义 |
j, k |
上下 |
h, l |
左右(不能跨行) |
w |
下一个单词(开头) |
b |
词头(上一个单词) |
e |
词尾(下一个单词) |
yy |
复制行 |
dd |
删除行 |
u |
撤销 |
V |
可视行模式 |
v |
可视模式 |
ctrl+v, ctrl+q |
可视列模式 |
d, y, p |
可视模式下删除、复制、粘贴 |
i |
在光标前方插入模式 |
esc, ctrl+[ |
回到普通模式 |
所有的删除和复制操作共用一个数据寄存器
可视模式下按O可将光标切换至选区的另一角
Section 2 进阶操作/搜索
快捷键 |
意义 |
o |
向下插入一行,并进入插入模式 |
O |
向上插入一行,并进入插入模式 |
P |
向上黏贴 |
W, B, E |
以空格为界跳转 |
a |
在光标后方进入插入模式 |
/ |
向下搜索 |
? |
向上搜索 |
n, N |
在搜索中前后跳转 |
* |
向后搜索光标所在单词 |
# |
向前搜索光标所在单词 |
搜索完毕后取消搜索的高亮 :noh
搜索时忽略大小写 :set ic,不忽略大小写 :set noic
Section 3 行内操作
快捷键 |
意义 |
f, F |
跳转到行内指定字母(光标后、前) |
t, T |
跳转到行内指定字母前(光标后、前) |
; , |
f搜索后,往后、往前跳转 |
x |
删除一个字母 |
s |
删除一个字母并进入插入模式 |
c |
删除后进入插入模式(其余与d相同) |
y, d, v, c |
均可以与f, t等配合 |
D |
删除当前行中剩余部分 |
C |
删除当前行中剩余部分,并进入插入模式 |
S |
删除当前整行,并进入插入模式 |
Section 4 垂直跳转
快捷键 |
意义 |
gg |
跳转至第一行 |
G |
跳转至最后一行 |
: |
跳转至指定行 |
{, } |
跳转到上/下一空行 |
ctrl+u |
向上半页 |
ctrl+d |
向下半页 |
% |
跳转与光标所在括号对应的括号 |
di{ di( di[ |
删除光标所在括号包裹的内容 |
dip diw |
删除光标所在段落/单词 |
da{ |
删除光标所在括号包裹的内容和括号本身 |
上述操作中d可以换成c/v/y执行对应操作
命令前加数字,代表重复命令多次
Section 5 文件级操作
快捷键 |
意义 |
:e |
打开文件 |
ctrl+o |
返回上一次光标所在位置(可以跨文件) |
ctrl+i |
重做ctrl+o |
m |
文件内标记光标所在位置 |
m(capitalized) |
全局标记 |
` |
前往标记的光标所在位置 |
其他
快捷键 |
意义 |
r/R |
更改一个/多个字母 |
q<char/num> … q |
录制宏,结束录制宏 |
@<char/num> |
播放宏,前面可以加上数字表示重复次数 |
在vscode中,宏是在当前窗口中暂时性的。不过就宏本身想要解决的痛点来说,宏本身就是一种暂时性的解决方案,没有必要进行长久的全局的保存。
命令 |
说明 |
:! |
执行外部命令 |
:w |
将当前文件内容写入新文件中 (可通过可视模式选中指定内容执行该操作) |
:r |
将文件内容插入至当前光标后 |
:r ! |
执行外部命令,将标准输出结果插入至当前光标后 |
动作 |
意义 |
gu |
转换为小写 |
gU |
转换为大写 |
g~ |
大小写对换 |
每个动作后都需要指定名词,如w, p, [, {,其中除了w以外其他名词必须指定i/a参数
名词简称
标签
快捷键 |
意义 |
gt |
切换到下一个标签 |
gT |
切换到上一个标签 |
:tabnew |
新建标签,可指定文件名 |
:tabc[lose] |
关闭当前标签 |
:tabo[nly] |
仅保留当前标签 |
:tabdo |
在所有标签中执行命令 |
推荐教程(含虚拟机):
https://next.idev365.com/vim/