[编辑:阅读评论后,我意识到 Surround 插件毕竟足以满足我的需求,所以我将把这个问题留给纯粹的学术目的,以便更好地了解 vimscript 的内部工作原理]
我想在 Vim 中更容易地添加/删除标签、引号、大括号和其他对称文本结构,我发现surround.vim 插件有点过于古怪和专门满足我的需要。
我真正需要的是更普遍的“镜像”输入模式和“镜像”删除模式,我可以直观地选择一个文本块,然后在选择的两端同时输入或删除。作为示例工作流程,我想:
- 选择单词你好
- 点击一些按键组合进入“镜像模式”
- 类型 ”
- 我的文字现在说“你好”
在这个例子中,我只在每一端输入了一个字符,但重要的是在第三步中我可以输入许多字符,而不仅仅是一个,例如我应该能够输入<b>
来生成<b>hello<b>
(我仍然需要手动添加 /在结束标签中,我可以这样做)。
那么这在 Vim 中是否可行?有人可以提供解决方案中涉及的功能的大致轮廓吗?具体来说,我不知道如何在插入文本时截取文本,然后更改它出现的位置,以便将其附加到选择块的开头和结尾而不是光标位置。同样删除。