当占位符发生更改时,Vim会触发所有占位符的更新

时间:2012-10-05 12:46:27

标签: vim

我想在Vim中创建一个文档模板。

创建扩展名为.bananão的文件后,模板应自行激活并成为当前缓冲区。

模板将包含以下内容:


Names of attorneys:
- DEFATTORNEY
- BANANATTORNEY

Plaintiff:
- BANANAPLAINTIFF
Defendant:
- BANANADEFENDANT

...

.. moves the court for the entry of an Order directing BANANAPLAINTIFF
   to produce to BANANADEFENDANT ...

... etc.

我希望vim在对此文档模板进行更改时监视更改,并在检测到特定事件时触发操作。

我想监控的更改是:

  • 属于套装COCONUTSET的任何关键字的编辑:{DEFATTORNEY,BANANATTORNEY,BANANAPLAINTIFF,BANANADEFENDANT}

我想配置的触发复合动作是:

  • 完成编辑COCONUTSET中其中一个单词的命令后,比如说COCONUTWORD,读取代替占位字COCONUTWORD的第一个单词,并用这个替换单词替换所有其他出现的占位符单词COCONUTWORD只是替换它。

  • 从COCONUTSET中删除COCONUTWORD。

  • 如果COCONUTSET为空,请停止监控更改。

您会为此推荐哪些功能/方法?

1 个答案:

答案 0 :(得分:0)

有了你愚蠢的例子,很难判断它有多好用,但是我为我编写了一个插件,它提供了一个gc命令,就像内置c一样,并且在离开后插入模式将本地替换应用于当前行中的所有其他事件(如果字符更改较小),或者当整行更改时,将其应用于缓冲区的其余部分。我计划很快发布这个,但基本上你只需要挂钩InsertLeave事件,看看已编辑的内容(注册".),然后执行替换。