BufRead和BufEnter有什么区别?

Ash*_*jan 9 vim

我很困惑这两个事件BufRead和BufEnter.他们之间有什么区别?

我将选择一个而不是另一个的一些示例场景将非常有帮助.

Ing*_*kat 10

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

BufRead在Vim将文件读入其内存后触发该事件.除非你重新加载:edit!,否则只发生一次.

在BufEnter当你激活一定的缓冲性被激发,即当它成为缓冲光标在.例如,当你有分裂,显示不同的缓冲区的窗口,然后您之间移动.同样在单个窗口中,当您使用类似命令时<C-^>,:bnext更改当前编辑的缓冲区.

  • 我看到许多autocmds用`BufRead,BufEnter`定义.为什么还要使用`BufRead`,考虑到在开始编辑缓冲区之前`BufEnter`总会在它之后发生? (5认同)