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