1

[编辑:阅读评论后,我意识到 Surround 插件毕竟足以满足我的需求,所以我将把这个问题留给纯粹的学术目的,以便更好地了解 vimscript 的内部工作原理]

我想在 Vim 中更容易地添加/删除标签、引号、大括号和其他对称文本结构,我发现surround.vim 插件有点过于古怪和专门满足我的需要。

我真正需要的是更普遍的“镜像”输入模式和“镜像”删除模式,我可以直观地选择一个文本块,然后在选择的两端同时输入或删除。作为示例工作流程,我想:

  1. 选择单词你好
  2. 点击一些按键组合进入“镜像模式”
  3. 类型 ”
  4. 我的文字现在说“你好”

在这个例子中,我只在每一端输入了一个字符,但重要的是在第三步中我可以输入许多字符,而不仅仅是一个,例如我应该能够输入<b>来生成<b>hello<b>(我仍然需要手动添加 /在结束标签中,我可以这样做)。

那么这在 Vim 中是否可行?有人可以提供解决方案中涉及的功能的大致轮廓吗?具体来说,我不知道如何在插入文本时截取文本,然后更改它出现的位置,以便将其附加到选择块的开头和结尾而不是光标位置。同样删除。

4

1 回答 1

2

好吧,您描述的行为正是 Surround 所做的:

  1. 选择单词hello
  2. S
  3. 类型"
  4. 我的文字现在说"hello"

与您所问的不同之处在于我不知道该怎么做的“实时更新”或“实时镜像”。你可以看看 SnipMate 或 UltiSnips 的那部分。

于 2013-05-30T14:55:16.960 回答