脚本化vim的文件已从外部检测更改


2

当您在vim之外更改文件时,vim会注意到并提示您采取措施:它应该重新加载文件并放弃您所做的任何更改吗?它应该保留您的更改吗?

通常,仅重新读取缓冲区是正确的。通常,发生这种情况:

  • 在vim中打开文件。
  • 砍掉,保存。
  • 更改git中的分支。
  • Vim检测到文件已更改。

在这一点上,我真的只希望重新保存文件,因为它已保存。(如果未保存该缓冲区,则正常提示是可以的。)如果我有一个保存的杂散缓冲区,单击/键入“加载文件”很容易出错。仅针对已修改的缓冲区看到该消息会更安全。

完全符合我想要的东西会很棒,但我确实也有其他需求(比较修改后的缓冲区会很酷):您可以编写脚本来记录文件在磁盘上更改时会发生什么吗?

Answers:


1

如果:set autoread还不够,您确实可以编写行为脚本;在这种情况下,将FileChangedShell触发该事件,您可以参与其中并影响行为。有关:help FileChangedShell详细信息,请参见。


0

听起来vim的autoread选项可以满足您的需求。您可以通过在vimrc文件中添加以下内容或在vim会话中键入以下内容来启用该功能:

:set autoread

您可以使用以下方法获取有关该选项的更多信息:

:help 'autoread'

有关查看vim缓冲区中的内容和磁盘上的内容之间差异的信息:

:help :DiffOrig

其中包含一些代码,您可以将它们放入vimrc文件中,以定义:DiffOrig将完全执行此操作的命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.