Vim -- 可视模式
本文将介绍
Vim
中的可视模式
基础
可视模式
Vim的可视模式允许我们选中一块文本区域并在其上进行操作
语法规则
与普通模式的语法规则次序颠倒
普通模式的语法规则:{operator}{motion}
可视模式的语法规则:先选中选区,再触发可视命令;类似于典型文本编辑器的操作模式
选择模式
典型文本编辑器的操作模式:当选中一段文本后,再输入任何可见字符,选择的文本会被删除
可视模式和选择模式相互切换:<C-g>
1 | :help Select-mode |
可视模式的子模式
面向字符
:任意字符范围,适用于操作单词或短语;触发命令:v
面向行
:触发命令:V = SHIFT + v
操作列块
:触发命令:<C-v>
gv
:重选上次的高亮选区;前提是上次的高亮选区没有被删除
子模式间的切换图
使用样例
切换选区活动端 o
高亮选区的范围由其两个对角的端点界定
重复执行面向行的可视命令
使用命令.
重复低高亮选区所做的修改,此修改会重复作用于相同范围的文本
下列例子采用Vim配置:set shiftwidth=4 softtabstop=4 expandtab
操作符命令 vs 可视命令
- 尽量使用操作符命令
- 我们需要重复修改的时候,最好是使用
命令.
,而命令.
与操作符命令
(普通模式)结合得很好 命令.
与可视命令(可视模式)有一些异常情况,具体参照下面的manual(:h visual-repeat)
- 我们需要重复修改的时候,最好是使用
- 可视命令的应用场景
- 一次性的修改任务
- 需要修改的文本范围的结构很难用普通模式的动作命令表达
vitU
vsgUit
it
:表示标签里面的内容
,文本对象,一种特殊的动作命令;iw
也是一个文本对象,表示一个单词
- vitU:两条命令,vit + U
- gUit:单独的命令
1 | :h visual-repeat |
使用面向块的可视模式处理表格(列)
修改列文本
在长短不一的高亮块后添加文本
a
,i
:在普通模式:切换至插入模式;在可视模式和操作符待决模式:当做一个文本对象的组成部分,如viw
,vit
,daw
A
,I
:在普通模式、可视模式和操作符待决模式:切换至插入模式
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.