[编辑:阅读评论后我意识到Surround插件毕竟是满足我的需求的,所以我将这个问题留给纯粹的学术目的,以便更好地理解vimscript的内部工作方式]
我想在Vim中添加/删除标签,引号,大括号和其他对称文本结构更容易,我发现surround.vim插件有点过于古怪,专门针对我的需求。
我真正需要的更通常是“镜像”输入模式和“镜像”删除模式,我可以直观地选择文本块,然后立即键入或删除选择的两端。作为示例工作流程,我想:
在这个例子中,我只在每一端输入一个字符,但重要的是在第三步中我可以键入多个字符,而不仅仅是一个字符,例如我应该能够输入<b>
来生成{{ 1}}(我仍然需要在结束标记中手动添加/,我可以这样做。)
这在Vim中甚至可能吗?有人可以提供解决方案中涉及的功能的大致轮廓吗?具体来说,我不知道如何插入文本,因为它被插入然后改变它出现的位置,以便它被添加到选择块的开头和结尾而不是光标位置。同上删除。
答案 0 :(得分:2)
嗯,您描述的行为正是Surround所做的:
hello
S
"
"hello"
与您要求的不同之处在于“实时更新”或“实时镜像”,我不知道该怎么做。你可以看一下SnipMate或UltiSnips的那一部分。