繁体   English   中英

如何在vim中进行列编辑?

[英]How to do column editing in vim?

Vim 在按行编辑时非常强大 - 搜索/替换工具被建模为按行工作。

但是如果我想在所有行中更改特定列怎么办? 例如,如何轻松地将文件中的第 80 列更改为#

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

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

我认为人们(我)有时会将列编辑键映射到Ctrl + Q,因此如果您将其映射为这样,它就不会与视觉选择行 (V) 或粘贴文本发生冲突。

...我无法按照 sa125 (facepalm) 的步骤进行操作,因此我查看了其他地方并在以下位置找到了更简单的解释: https ://blog.pivotal.io/labs/labs/column-edit-mode-in-vi

  1. Ctrl + v [ 并选择你想要的]
  2. Shift + i [随便写……(查看下面的**)]
  3. 退出

* 可以使用不带Shift 的c代替第 2 步,在插入之前删除选择。 还有r来替换。

**!! 注意 不要因为“随便写……”时只更改第一行这一事实而气馁!!

希望能帮助到你!

您可以使用模式匹配特定列( \\%c ) 的 替换

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

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

G G 8 0 | CTRL + v G r #

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

:set virtualedit

对于逐列编辑, vis.vim非常有用。 您可以块选择您感兴趣的列,并使用普通命令甚至任意 Ex 命令对其进行操作。 从该页面上的示例中,我经常使用该模式:

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

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

插件 'taku-o/vim-vis'

我在这里可能完全偏离主题,但如果您的想法是避免长行,您可以查看 vim 7.3 的colorcolumn选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM