Vim缓冲区已修改
我试图在Vim中实现一个Vim缓冲区已修改,vim,buffer,autocmd,Vim,Buffer,Autocmd,我试图在Vim中实现一个AutoCmd,当修改当前缓冲区时需要执行该命令 我已经阅读了文档中有关AutoCmd的所有可用事件,但找不到有助于确定何时修改缓冲区的内容 这并不一定意味着“写入缓冲区时”,因为需要在修改缓冲区(包括写入缓冲区)时调用我需要触发的操作 关于如何实现这一目标的BUFIS修改有什么想法吗 注意:不是的副本,因为这个问题是关于一个autocmd的,而不仅仅是缓冲区修改检查我想到的唯一一件事就是使用CursorMoved和CursorMovedI事件 HTH在我听来似乎是可行的
AutoCmd
,当修改当前缓冲区时需要执行该命令
我已经阅读了文档中有关AutoCmd
的所有可用事件,但找不到有助于确定何时修改缓冲区的内容
这并不一定意味着“写入缓冲区时”,因为需要在修改缓冲区(包括写入缓冲区)时调用我需要触发的操作
关于如何实现这一目标的BUFIS修改
有什么想法吗
注意:不是的副本,因为这个问题是关于一个
autocmd
的,而不仅仅是缓冲区修改检查我想到的唯一一件事就是使用CursorMoved
和CursorMovedI
事件
HTH在我听来似乎是可行的,在事件函数中测试
&modified
vim变量,如果未更改,则为0;如果上次写入磁盘后发生更改,则为1。您可以运行一系列Ex命令来完全转换缓冲区,而无需移动光标或进入插入模式。我愿意使用Ex命令进行折衷。答案加上赫伯特的评论符合我的要求。谢谢@直觉:您所描述的情况可能被认为是罕见的,修改缓冲区的EX命令很可能也会导致光标移动。可能的重复:这很奇怪,如果先问这个问题,为什么这个问题会重复另一个问题?什么重复?我怎样才能成为一名汽车司机?(我来这里的原因…)实际解决方案:让modified=getbufvar(bufname(“%”),“&mod”)@Robert Harvey这不是链接问题的重复。