Appearance
可视模式:精确选择技术
可视模式是 Vim 的选择机制。与鼠标拖拽选择相比,可视模式提供了三种选择方式,配合动作命令可以精确高效地选中目标区域。
三种可视模式
| 命令 | 模式 | 选择方式 |
|---|---|---|
v | 字符可视 | 按字符选择 |
V | 行可视 | 按整行选择 |
Ctrl+V | 块可视 | 按矩形块选择 |
字符可视模式 (v)
v 进入后,移动光标扩展选区。
配合动作
viw 选中当前单词
vi" 选中引号内的内容
vi{ 选中大括号内的内容
vip 选中当前段落
v$ 选中到行尾
v/end 选中到 "end" 匹配处实战演示
选中函数调用的参数:
typescript
const result = calculate(a, b, c);
// ↑ 光标在 a
// vi) → 选中 a, b, c选中对象的值:
typescript
const config = { name: "app", version: "1.0" };
// ↑ 光标在 "app" 内
// vi" → 选中 app(不含引号)
// va" → 选中 "app"(含引号)行可视模式 (V)
V 进入后,按整行扩展选区。
Vj 选中当前行和下一行
V5j 选中当前行及往下 5 行
Vip 选中当前段落(所有行)
V/} 选中到包含 } 的行常见用途
- 快速选中多行进行删除、复制
- 选中函数体进行缩进调整
- 选中代码块进行移动
块可视模式 (Ctrl+V)
Ctrl+V 进入矩形选择模式,选中一个矩形区域。
注意:在 VSCode 中,Ctrl+V 默认是粘贴。需要配置 Vim 接管:
json
{
"vim.handleKeys": {
"<C-v>": true
}
}矩形选择用法
1. Ctrl+V 进入块可视模式
2. j/k 上下扩展
3. h/l 左右扩展
4. 选中一个矩形区域批量编辑
块可视模式的杀手级功能是批量编辑:
1. Ctrl+V 选中矩形区域
2. I(大写)在每行开头插入
3. 输入内容
4. Escape
5. 所有选中行都添加了相同内容例如,批量添加注释:
javascript
line1
line2
line3
line41. Ctrl+V
2. 3j(选中 4 行)
3. I// (输入注释符)
4. Escape结果:
javascript
// line1
// line2
// line3
// line4同理,A(大写)在每行末尾追加。
可视模式操作
选中后可以执行的操作:
| 命令 | 效果 |
|---|---|
d 或 x | 删除选中内容 |
c | 删除选中内容并进入插入模式 |
y | 复制选中内容 |
> | 增加缩进 |
< | 减少缩进 |
= | 自动格式化缩进 |
u | 转换为小写 |
U | 转换为大写 |
~ | 切换大小写 |
J | 合并为一行 |
: | 对选中范围执行命令 |
扩展和收缩选区
选中后,可以调整选区:
| 命令 | 效果 |
|---|---|
o | 切换到选区另一端 |
O | 在块可视模式中,切换到同侧另一角 |
o 非常有用——如果你选多了或少了,o 跳到另一端调整。
重新选择上次选区
gv 重新选中上次选择的区域场景:执行了一个操作后,想对同样区域再执行另一个操作:
1. viw 选中单词
2. U 转大写
3. gv 重新选中
4. y 复制选择并操作文本对象
最强大的用法是结合文本对象:
vi{ 选中大括号内
va{ 选中大括号及内容
viB 同 vi{
vi[ 选中方括号内
vi( 选中圆括号内
vi" 选中双引号内
vi' 选中单引号内
vi` 选中反引号内
vit 选中 HTML 标签内
vat 选中 HTML 标签及内容
vip 选中段落
viw 选中单词
vas 选中句子实战技巧
技巧 1:选中函数体
typescript
function example() {
// 很多行代码
}光标在函数体内时:
Vi{ → 选中整个函数体(不含大括号)
Va{ → 选中整个函数体(含大括号)技巧 2:选中 JSX 元素
jsx
<div className="container">
<span>Hello</span>
</div>光标在 div 标签内时:
vit → 选中 div 标签内的内容
vat → 选中整个 div 标签技巧 3:批量缩进
1. V 选中多行
2. > 增加缩进
3. . 重复(再增加)或者:
1. V 选中
2. 3> 增加 3 级缩进技巧 4:快速复制当前行
V y → 选中当前行并复制
yy → 同样效果,更快配置建议
确保块可视模式可用:
json
{
"vim.handleKeys": {
"<C-v>": true
}
}如果需要保留 Ctrl+V 粘贴功能,可以在插入模式中保留:
json
{
"vim.insertModeKeyBindings": [
{
"before": ["<C-v>"],
"commands": ["editor.action.clipboardPasteAction"]
}
]
}本章收获:
- ✅ 掌握三种可视模式
- ✅ 学会配合动作和文本对象选择
- ✅ 熟悉选中后的操作命令
- ✅ 掌握块可视模式的批量编辑
效率提升:精确选择 + 快速操作,告别鼠标拖拽的低效选择方式。