可视模式
可视模式(Visual Mode)允许你直观地选择文本块,然后对选中的内容执行操作。这是 Vim 中进行选择性编辑的重要工具。
进入可视模式
| 命令 | 模式 | 说明 |
|---|---|---|
v | 字符可视模式 | 按字符选择 |
V | 行可视模式 | 按行选择 |
Ctrl+v | 块可视模式 | 按列选择(矩形区域) |
gv | 重新选择 | 选中上次选择的区域 |
字符可视模式
字符可视模式是最基础的可视模式,按字符逐个选择。
基本使用
1. 按 v 进入字符可视模式
2. 使用移动命令(h,j,k,l,w,e,$等)扩展选择
3. 按操作命令(d,y,c等)执行操作
示例
# 光标在 H 上
print("Hello World")
# 按 v 进入可视模式
# 按 e 选择 Hello
# 按 y 复制
# 按 Esc 退出
扩展选择
在可视模式下,所有移动命令都可以用来扩展选择:
vw " 选择到单词结尾
ve " 选择到单词结尾(不含空格)
v$ " 选择到行尾
vfx " 选择到字符 x
viw " 选择当前单词
vi" " 选择引号内内容
行可视模式
行可视模式按整行选择,适合处理多行文本。
基本使用
1. 按 V 进入行可视模式
2. 使用 j,k 选择多行
3. 执行操作
示例
Line 1
Line 2
Line 3
Line 4
# 光标在第 2 行
# 按 V 进入行可视模式
# 按 j 选择第 2-3 行
# 按 d 删除
选择多行
Vjj " 选择当前行及下面 2 行
V5j " 选择当前行及下面 5 行
VG " 选择到文件末尾
块可视模式
块可视模式是 Vim 最强大的功能之一,允许选择矩形文本区域。
基本使用
1. 按 Ctrl+v 进入块可视模式
2. 使用移动命令选择矩形区域
3. 执行操作
示例:添加列数据
原始文本:
apple 100
banana 200
cherry 300
# 给数字添加 $ 符号
1. Ctrl+v 进入块可视模式
2. 用 j 选择三行
3. 用 l 选择数字部分
4. 按 I 进入插入模式
5. 输入 $
6. 按 Esc(需要等待一下)
结果:
apple $100
banana $200
cherry $300
示例:删除列数据
原始文本:
name age city
Alice 25 NY
Bob 30 LA
# 删除 age 列
1. Ctrl+v 进入块可视模式
2. 选择 age 列(包括数字和空格)
3. 按 d 删除
结果:
name city
Alice NY
Bob LA
可视模式下的操作
基本操作
| 命令 | 作用 |
|---|---|
d | 删除选中内容 |
y | 复制选中内容 |
c | 修改选中内容 |
> | 向右缩进 |
< | 向左缩进 |
= | 自动缩进 |
~ | 切换大小写 |
u | 转为小写 |
U | 转为大写 |
r | 替换为指定字符 |
x 或 d | 删除 |
s | 删除并进入插入模式 |
替换示例
Hello World
# 选中 Hello
# 按 r# 替换为 #####
结果:
##### World
缩进示例
# 原始代码
if True:
print("line 1")
print("line 2")
# 选中两行 print
# 按 > 向右缩进
结果:
if True:
print("line 1")
print("line 2")
可视模式的边界调整
在可视模式下,可以使用以下命令调整选择边界:
| 命令 | 作用 |
|---|---|
o | 切换到选择的另一端 |
O | 在块可视模式中,切换到对角 |
示例:
选择了较长的区域,但多选了一个字符
按 o 切换到另一端
用 h 调整选择范围
按 o 切换回来
可视模式与文本对象
可视模式可以与文本对象结合使用:
vaw " 选择一个单词(含空格)
viw " 选择当前单词
vi" " 选择引号内内容
va" " 选择引号及内容
vi( " 选择括号内内容
va( " 选择括号及内容
vip " 选择当前段落
实战技巧
技巧 1:注释多行代码
# 给多行添加注释
1. Ctrl+v 进入块可视模式
2. 选中多行的行首
3. I# 输入注释符号
4. Esc
结果:
# line 1
# line 2
# line 3
技巧 2:取消多行注释
# 取消多行注释
1. Ctrl+v 进入块可视模式
2. 选中所有 # 符号
3. d 删除
结果:
line 1
line 2
line 3
技巧 3:在多个位置插入相同文本
原始文本:
item1
item2
item3
# 在每行前添加 "- "
1. Ctrl+v 选中三行的行首
2. I- 输入 "- "
3. Esc
结果:
- item1
- item2
- item3
技巧 4:对齐文本
原始文本:
apple = 1
banana = 2
cherry = 3
# 对齐等号
1. Ctrl+v 选中 = 前面的空格
2. 按 d 删除
3. 在每行等号前手动添加适当空格
结果:
apple = 1
banana = 2
cherry = 3
技巧 5:选择性复制
原始文本:
name: Alice
name: Bob
name: Charlie
# 只复制名字
1. Ctrl+v 选中名字列
2. y 复制
3. p 粘贴
可视模式的退出
| 命令 | 作用 |
|---|---|
Esc | 退出可视模式,回到普通模式 |
Ctrl+[ | 同上 |
v | 在可视模式下按 v,退出到普通模式 |
V | 切换到行可视模式 |
Ctrl+v | 切换到块可视模式 |
练习
练习 1:字符可视模式
1. 打开任意文本文件
2. 用 v 进入字符可视模式
3. 用 w,e,$ 等扩展选择
4. 练习 d,y,c 操作
5. 练习 o 切换选择端点
练习 2:行可视模式
1. 用 V 进入行可视模式
2. 选择多行
3. 练习 >,< 缩进
4. 练习 y,d 操作
练习 3:块可视模式
创建一个包含多列数据的文件:
apple 100 red
banana 200 yellow
cherry 300 red
练习:
1. 给数字列添加 $ 符号
2. 删除颜色列
3. 在每行前添加序号
4. 将水果名改为大写
练习 4:综合练习
原始代码:
print("Hello")
print("World")
print("Vim")
目标:
1. 给每行添加注释
2. 将 print 改为 console.log
3. 将双引号改为单引号
4. 删除括号
可视模式总结
| 模式 | 进入 | 特点 | 适用场景 |
|---|---|---|---|
| 字符可视 | v | 按字符选择 | 选择部分单词、句子 |
| 行可视 | V | 按行选择 | 选择整行、多行 |
| 块可视 | Ctrl+v | 按列选择 | 操作表格数据、批量插入 |
下一步
掌握了可视模式后,下一章我们将学习寄存器,这是 Vim 的多剪贴板系统,让复制粘贴更加强大灵活。