我对这两个事件BufRead
和BufEnter
. 它们之间有什么区别?
一些我会选择其中一个的示例场景将非常有帮助。
缓冲区是文件的内存表示;要编辑一个,它必须显示在一个窗口中。
BufRead
在 Vim 将文件读入内存后触发该事件。除非您通过 重新加载:edit!
,否则这只发生一次。
每当您激活某个缓冲区时,即当它成为光标所在的BufEnter
缓冲区时,就会触发 。例如,当您有显示不同缓冲区的拆分窗口时,您会在此之间移动。同样在单个窗口中,当您使用类似的命令<C-^>
来:bnext
更改当前正在编辑的缓冲区时。
BufRead
在缓冲区被文件内容填充后触发。
BufEnter
在您输入缓冲区进行编辑后触发。
您可以使用BufNew
,BufRead
或者BufAdd
如果您想在创建缓冲区时做一些事情:设置一些全局变量,填充您自己的缓冲区列表以在脚本中使用。
BufEnter
当您想根据文件类型或其他内容设置特定选项时,您可以使用。