VIM中的多行编辑(使用标记)

3

有没有人知道在VIM中使用Marks或类似的技术来编辑多行的预设技巧?当我选择列进行插入之前和之后时,我使用Shift+I / Shift+A,如果可以用类似于“不均匀”或“锯齿状”的线条做相似的事情就更好了。

“锯齿状”线条的示例:

<a href="new/link/"> same link </a>
<a href="new/link/to/another/area/"> next link </a>
<a href="old/link/same/content/"> same size </a>
<a href="interesting/tmp/same/info/"> size same </a>
<a href="to/a/great/place/known/the_same/"> what link </a>
<a href="another/new/link/"> this link </a>
<a href="into/links/"> some link </a>

在此示例中,我想要调整链接的内部文本:“same link”,“next link”,“same size”等。虽然可以轻松地使用正则表达式来完成,但如果可以用标记来完成也是不错的选择。
工作流示例:
- 转到每个类似大小的项目的开头进行编辑 - 用'[a-z,A-z]等进行标记 - :MarkInsertMode # << Ideally mapped something similar to this, - 然后它的工作方式就像Shift + A或Shift + I一样,编辑显示在单行上,并更新所有行。
如果没有现成的解决方法,我很可能会编写一个脚本来实现这个功能,但我很好奇是否已经有类似的方法可用。

1
你可以尝试使用这个插件 vim-multiple-cursors,它看起来可以使用多个可视化选项来实现你想要的功能。 - FDinoff
你能解释一下为什么你想使用“标记”来代替:s/../../吗?:s非常直接了当。你也可以录制一个宏来完成这个任务,但如果我是你,我会选择使用:s。或者是我没有理解你的需求? - Kent
我目前使用sed表达式来编辑我的行,但这并不理想,因为在编辑时需要思考正则表达式,这会让你分心。 - Vita Pluvia
谢谢FDinoff!看起来很不错,我会去试试看。如果像那些漂亮的gif所展示的那样,这应该能解决问题! - Vita Pluvia
@VitaPluvia 告诉我进展如何。(但我只是因为gif看起来像你想要的才推荐这个插件。我从未使用过它) - FDinoff
有一些小问题,但这绝对会成为我的日常例行程序!:) 谢谢! - Vita Pluvia
1个回答

1

在评论中已经提到了vim-multiple-cursors插件。如果您正在编辑的文本是相同的,则另一种选择是我的ChangeGlobally插件;它提供了一个新的gc命令,类似于内置的c,但在离开插入模式后将局部替换应用于所有其他出现。


这个可以运行,但目前仍然存在很多漏洞。 - Vita Pluvia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接