BufRead和BufEnter有什么区别?

时间:2013-02-28 07:05:15

标签: vim

我对两个事件BufReadBufEnter感到困惑。他们之间有什么区别?

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

2 个答案:

答案 0 :(得分:10)

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

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

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

答案 1 :(得分:3)

用缓冲区填充文件内容后触发

BufRead

输入缓冲区进行编辑后,

BufEnter被触发。

如果您想在创建缓冲区时执行某些操作,可以使用BufNewBufReadBufAdd:设置一些全局变量,填充您自己的缓冲区列表以供使用在剧本中。

如果要根据文件类型或其他类型设置特定选项,可以使用BufEnter