跳到主要内容

可视模式

可视模式(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替换为指定字符
xd删除
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 的多剪贴板系统,让复制粘贴更加强大灵活。