Vim快捷键

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 ! 执行外部命令,将标准输出结果插入至当前光标后
快捷键 意义
zz 使当前光标居中
动作 意义
gu 转换为小写
gU 转换为大写
g~ 大小写对换

每个动作后都需要指定名词,如w, p, [, {,其中除了w以外其他名词必须指定i/a参数

名词简称

名词 意义
( = b
{ = B
< = t

标签

快捷键 意义
gt 切换到下一个标签
gT 切换到上一个标签
:tabnew 新建标签,可指定文件名
:tabc[lose] 关闭当前标签
:tabo[nly] 仅保留当前标签
:tabdo 在所有标签中执行命令

推荐教程(含虚拟机):

https://next.idev365.com/vim/