Vim 的状态栏

Vim 的纵向编辑模式

Qspy posted @ 2013年9月27日 21:30 in Vim with tags vim block , 5609 阅读

纵向编辑,或称为列编辑。


启动方法

在 Vim 命令模式下,移动游标定位于某一个位置,键入 ctrl-v后状态栏上出现 "-- VISUAL BLOCK --" (中文环境下是 "-- 可视 块 --") 字样,即进入纵向编辑模式。

注意:在 Windows 版本的 Vim 中,因为启用mswin.vim的关系,键组合 ctrl-v通常被映射为文本粘贴,所以 Window 版的 Vim 的纵向编辑模式由 ctrl-q启动。


启动后,移动游标以按需选择待编辑的区域,然后键入 "A"/"I"/"r" 决定是 后添加、前添加或修改选定的列区域。其中 "A"/"I" 需要使用 <Esc> 来表示完成。


示例

原始序列

 10.1.5.214
 10.1.5.212
 10.1.5.210

目标序列
 ping -c 4 10.5.5.214 >> result0
 ping -c 4 10.5.5.212 >> result0
 ping -c 4 10.5.5.210 >> result0

这个示例将包含 前添加、后添加和修改三种动作。
 

列修改

将 IP 数列中第二段所有数字“1” 修改为“5”:
将游标定位第一个行 IP 地址第二段的“1”
ctrl-v 进入纵向编辑模式
G 移动游标到最后一行,此时的可视块将包含前四列,像这样
 10.1.5.214
 10.1.5.212
 10.1.5.210

h/l 向左或向右移动游标,让可视块只覆盖所要修改的列
 10.1.5.214
 10.1.5.212
 10.1.5.210

r 进入修改模式
注:这里是小写的"r"

5 输入数字“5”,这里可以输入
注:执行到这一步时,所有选中的数字都被改成了“5”,不需要像下一步要按 <ESC>; 这样的后果就是一次只能修改一列,很成问题

ESC 退出纵向编辑模式,同时所有被选中的数字都被改成了“5”,并回到命令模式
结果如下:
 10.5.5.214
 10.5.5.212
 10.5.5.210

列前添加

在所有行之前添加“ping – c 4 ”:
将游标定位到第一行第一列
ctrl-v 进入纵向编辑模式
G 移动游标到最后一行第一列,可视块覆盖了第一列
 10.5.5.214
 10.5.5.212
 10.5.5.210
I 进入行首插入模式
ping -c 4 输入所要求字符“ping – c 4 ”
ESC 退出纵向编辑模式的同时所有选中的字符前都添加了“ping – c 4 ”,回到命令模式
结果如下:
 ping -c 4 10.5.5.214
 ping -c 4 10.5.5.212
 ping -c 4 10.5.5.210

列后添加

在所有行之后添加“>> result0”:
将游标定位到第一行最后一列
ctrl-v 进入纵向编辑模式
G 移动游标到最后一行
 ping -c 4 10.5.5.214
 ping -c 4 10.5.5.212
 ping -c 4 10.5.5.210
h/l 向左或向右移动游标,让可视块只覆盖最后一列
 ping -c 4 10.5.5.214
 ping -c 4 10.5.5.212
 ping -c 4 10.5.5.210
A 进入行尾插入模式
>> result    输入所要求字符“>> result0”
ESC 退出纵向编辑模式的同时所有选中的字符后都添加了“ >> result0”,回到命令模式
结果如下:
 ping -c 4 10.5.5.214 >> result0
 ping -c 4 10.5.5.212 >> result0
 ping -c 4 10.5.5.210 >> result0


使用VisIncr插件


参考
Vim.org # VisIncr
技巧:Vim 的纵向编辑模式 # VisIncr 安装与操作
 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter