vim 区域选择/块选择

区域选择操作:

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")).而光标键在第一个 的位置。

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命令,则可以对选中的文本进行排序。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注