区域选择操作:
v | 进入字符可视化模式(移动一次选择一个字符) |
V | 进入行可视化模式 |
ctrl-V | 进入块可视化模式 |
ctrl-Q | |
gv | 选中前一次可视化模式时选择的文本 |
o | 光标移动到选中文本的另一结尾 |
O | 光标移动到选中文本的另一角落 |
补充操作:配合% (各种括号前后跳转),行内跳转:fa(到下一个为a的字符上),t(到某个字符前的字符)。大写的F、T是向反方向查找,命令有各种组合:
fa
→ 从当前光标位置到下一个为a的字符处,你也可以fs到下一个为s的字符。t,
→ 从当前光标位置到逗号前的第一个字符。逗号可以变成其它字符。3fa
→ 在当前行查找从当前光标位置起第三个出现的a。F
和T
→ 和f
和t
一样,只不过是相反方向。- 还有一个很有用的命令是
dt"
→ 删除所有的内容,直到遇到双引号——"。
最强操作:<action>a<object>
或 <action>i<object>
在visual 模式下,这些命令很强大,其命令格式为
<action>a<object>
和 <action>i<object>
- action可以是任何的命令,如
d
(删除),y
(拷贝),v
(可以视模式选择)。 - object 可能是:
w
一个单词,W
一个以空格为分隔的单词,s
一个句字,p
一个段落。也可以是一个特别的字符:"、
'、
)、
}、
]。
假设你有一个字符串 (map (+) ("foo"))
.而光标键在第一个 o
的位置。
vi" → 会选择 foo va" → 会选择 "foo" vi) → 会选择 "foo" va) → 会选择("foo") v2i) → 会选择 map (+) ("foo") v2a) → 会选择 (map (+) ("foo"))
区域选择后可以进行哪些操作:
- 针对高亮显示的文本块,我们可以用命令~进行大小写转换。
- 用命令>增加缩进,或用命令<减少缩进。
- 我们还可以利用可视化模式,来合并多行文本。J命令可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行。如果不希望在行间插入空格,那么可以使用gJ命令。
- 加注释,或者前、后加字符, I(大写i)-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效
- 使用g?命令,可以使用rot 13算法来加密高亮显示的文本。针对同一个文本再次执行加密命令,就可以进行文本解密。
在可视化模式下,按下:键就可以对选定范围进行操作。例如:我们先在可视化模式下选中文本,然后执行:write block.txt命令,就可以将文本块写入另一文件中。选择多行,
然后执行:sort命令,则可以对选中的文本进行排序。