vim:每次缓冲区更改时运行一些代码

时间:2011-05-13 12:24:29

标签: vim

我想捕获修改vim缓冲区的所有事件,因此我可以记录它们并将它们发送到服务器。我希望在插入模式下捕获逐个字符的事件,并在执行pdd等命令时通知 - 文档更改时。

3 个答案:

答案 0 :(得分:2)

通过我选择以下内容的事件列表:

|BufFilePre|            before changing the name of the current buffer
|BufFilePost|           after changing the name of the current buffer

|FileChangedShell|      Vim notices that a file changed since editing started
|FileChangedShellPost|  After handling a file changed since editing started

|InsertEnter|           starting Insert mode
|InsertChange|          when typing <Insert> while in Insert or Replace mode
|InsertLeave|           when leaving Insert mode

|QuickFixCmdPre|        before a quickfix command is run
|QuickFixCmdPost|       after a quickfix command is run

虽然我没有尝试,但我相信Insert*事件包括d elete,p aste,c hange等命令。您还应该寻找'autocmd-events |。

中的'写'事件

答案 1 :(得分:2)

在Vim 8中,这更容易。只需听听这些autocmd事件:

TextChanged
TextChangedI

答案 2 :(得分:0)

一位朋友指着我在vim内名字很大的netbeans模块。这看起来像我想要的。