如何在vim中进行列编辑?

当按行编辑时,Vim非常强大 – search/replace工具被build模为线性工作。

但是如果我想改变所有行的特定列呢? 例如,如何将我的文件中的第80列更改为#

您可以使用模式与特定列 ( \%c ) 匹配的replace :

 :%s/\%80c/#/<CR> 

或者你可以使用块式视觉模式:

g g 8 0 | CTRL + v G r

virtualedit ”选项可用于将光标定位到没有实际字符的位置:

 :set virtualedit 

要编辑列,请按照下列步骤操作:

  1. 站在列的开头
  2. Ctrl + Shift + v ,然后在要编辑的列上标记。
  3. Shift + i在列的开始处插入文本, Shift + a附加文本, rreplace突出显示的文本, d删除, c更改…等等。
  4. 完成后按ESC

我认为人们(我)有时会将列编辑键映射到Ctrl + Q,所以它不会与视觉select线(V)或粘贴文本相冲突(如果您将其映射为这样)。

…我不能按照sa125(facepalm)的步骤,所以我看了其他地方,发现一些更容易: https ://blog.pivotal.io/labs/labs/column-edit-mode-in-vi

  1. Ctrl + V [并select你想要的]
  2. Shift + [和任何写…(检查*下面)]
  3. 退出

*! 注意不要因为只有第一行在写'无论什么…'时被改变而感到灰心!

希望能帮助到你!

我可能在这里完全没有题目,但是如果你的想法是避免长线,你可以看一下vim 7.3的colorcolumn选项。

对于列式编辑, vis.vim非常有用。 您可以阻止select您感兴趣的列,并使用正常的命令,甚至任意的Ex命令来操作它。 从那个页面上的例子,我经常使用这个模式:

 :'<,'>B s/abc/ABC/g 

你可以Vundle / Pathogen从github安装vis.vim:

插件'taku-o / vim-vis'