如何在vim中进行列编辑?
当按行编辑时,Vim非常强大 – search/replace工具被build模为线性工作。
但是如果我想改变所有行的特定列呢? 例如,如何将我的文件中的第80列更改为#
?
您可以使用模式与特定列 ( \%c
) 匹配的replace :
:%s/\%80c/#/<CR>
或者你可以使用块式视觉模式:
g g 8 0 | CTRL + v G r #
“ virtualedit
”选项可用于将光标定位到没有实际字符的位置:
:set virtualedit
要编辑列,请按照下列步骤操作:
- 站在列的开头
- 按Ctrl + Shift + v ,然后在要编辑的列上标记。
- 按Shift + i在列的开始处插入文本, Shift + a附加文本, rreplace突出显示的文本, d删除, c更改…等等。
- 完成后按ESC 。
我认为人们(我)有时会将列编辑键映射到Ctrl + Q,所以它不会与视觉select线(V)或粘贴文本相冲突(如果您将其映射为这样)。
…我不能按照sa125(facepalm)的步骤,所以我看了其他地方,发现一些更容易: https ://blog.pivotal.io/labs/labs/column-edit-mode-in-vi
- Ctrl + V [并select你想要的]
- Shift + 我 [和任何写…(检查*下面)]
- 退出
*! 注意不要因为只有第一行在写'无论什么…'时被改变而感到灰心!
希望能帮助到你!
我可能在这里完全没有题目,但是如果你的想法是避免长线,你可以看一下vim 7.3的colorcolumn选项。
对于列式编辑, vis.vim非常有用。 您可以阻止select您感兴趣的列,并使用正常的命令,甚至任意的Ex命令来操作它。 从那个页面上的例子,我经常使用这个模式:
:'<,'>B s/abc/ABC/g
你可以Vundle / Pathogen从github安装vis.vim:
插件'taku-o / vim-vis'