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"))

 

区域选择后可以进行哪些操作:

  1. 针对高亮显示的文本块,我们可以用命令~进行大小写转换。
  2. 用命令>增加缩进,或用命令<减少缩进。
  3. 我们还可以利用可视化模式,来合并多行文本。J命令可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行。如果不希望在行间插入空格,那么可以使用gJ命令。
  4. 加注释,或者前、后加字符, I(大写i)-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效
  5. 使用g?命令,可以使用rot 13算法来加密高亮显示的文本。针对同一个文本再次执行加密命令,就可以进行文本解密。

在可视化模式下,按下:键就可以对选定范围进行操作。例如:我们先在可视化模式下选中文本,然后执行:write block.txt命令,就可以将文本块写入另一文件中。选择多行,

然后执行:sort命令,则可以对选中的文本进行排序。

 

posted @ 2020-09-02 11:00  虚风客  阅读(4053)  评论(0编辑  收藏  举报