如何在没有可视块模式的情况下在vim中编辑块

时间:2014-03-07 13:27:49

标签: vim

有没有办法在不使用可视块模式选择的情况下编辑代码中的垂直块?

3 个答案:

答案 0 :(得分:2)

blockwise visual mode 有什么不好?!没有实际的替代方案。

  • 您可以将:substitute\%>v\%<v\%>l\%<l等原子一起使用,以将模式匹配限制为矩形块,但这非常乏味的。
  • 有一些多编辑插件(受其他编辑器启发)允许您选择一些区域,然后同时编辑它们。
  • 出于特殊目的,您可以在Vimscript中编写带有getline() / setline()和字符串操作的scriptlet /映射。

答案 1 :(得分:1)

除了Ingo的回答,我还要补充一点:Ex命令是按行设计的。视觉模式的性质并不重要:默认情况下,Ex命令总是使用您选择的第一行和最后一行作为范围。

因为它不是直线的,所以视觉块模式和块“思考”并不真正与Ex命令对齐。

答案 2 :(得分:1)

您可以执行类似于最近回答的内容:https://stackoverflow.com/a/22238813/3130080

例如,

:%s/\%6c/x/

将在每行的第6个字符前插入“x”,并

:1,2s/\%>1c\%<4c.//g

将删除第1行和第2行中的字符2和3。

:help /\%c