列编辑是指可以对选中行进行同时编辑,类似我们小时候抄作业,手握两只笔一次可以写两行。列编辑功能可以快速对多行进行插入或删除,在不支持列编辑的编辑器里,就只能一行一行地重复操作了。
我们用例子来演示具体的功能
例1. 演示列删掉,删掉日志前的时间标记,只留下有用的部分

GIF动图中,为了演示,我操作了两遍,中间使用u回退了一次。具体操作过程是,ctrl+v 进入可视化操作模式,使用hjkl进行上下左右方向控制选中要删除的部分,最后输入d进行删除。
例2. 演示列插入,在选中列批量批入一段字符 Y000000

操作过程是,ctrl+v 进入可视化操作模式,使用hjkl进行上下左右方向控制选中要插入的位置,最后输入大写字母I(shift+i或 CAPSLOCK i),然后输入要输入的字符,输入完毕以ESC键结束,当前选中列就会插入输入的字符。
例3. 演示列替换,在选中的部分批量替换为字符99999

操作过程是,ctrl+v 进入可视化操作模式,使用hjkl进行上下左右方向控制选中要删的部分,接着输入字母s,然后输入要输入的字符,输入完毕以ESC键结束,选中部分就会替换为输入的字符。替换操作有点像删除加插入的组合。
除了上述的列删除、列插入、列替换,还有列复制和列粘贴就不演示了。我将快捷键汇总一下:
列删除 ctrol+v, 选中后 d
列插入 ctrol+v, 选中后 shift+i ,编辑完毕 ESC
列替换 ctrol+v, 选中后 s ,编辑完毕 ESC
列复制 ctrol+v, 选中后 y
列粘贴 p
最后再介绍一下vim的特性,这个特性配合列操作可以把编辑界面变成黑板,可以把文本从一个位置移到另一个位置。

正常情况下,我们没法将光标移动到没有文字的位置,这和我们在notepad中的感受是一样的,光标只能在有文本或空白的地方移动。vim有个选项可以把整个编辑界面都假设为充满空格,当光标移动到空白处输入字符,它会自动在输入位置的前面补充空格。
在命令模式输入:set virtualedit=all 即可进入这种模式。这种模式在其它编辑器中很少有实现的,是vim的一个特性。





