11

我对这两个事件BufReadBufEnter. 它们之间有什么区别?

一些我会选择其中一个的示例场景将非常有帮助。

4

2 回答 2

12

缓冲区是文件的内存表示;要编辑一个,它必须显示在一个窗口中。

BufRead在 Vim 将文件读入内存后触发该事件。除非您通过 重新加载:edit!,否则这只发生一次。

每当您激活某个缓冲区时,即当它成为光标所在的BufEnter缓冲区时,就会触发 。例如,当您有显示不同缓冲区的拆分窗口时,您会在此之间移动。同样在单个窗口中,当您使用类似的命令<C-^>:bnext更改当前正在编辑的缓冲区时。

于 2013-02-28T08:22:39.803 回答
4

BufRead在缓冲区被文件内容填充后触发。

BufEnter在您输入缓冲区进行编辑后触发。

您可以使用BufNewBufRead或者BufAdd如果您想在创建缓冲区时做一些事情:设置一些全局变量,填充您自己的缓冲区列表以在脚本中使用。

BufEnter当您想根据文件类型或其他内容设置特定选项时,您可以使用。

于 2013-02-28T08:26:47.277 回答