我对
BufRead
和 BufEnter
这两个事件感到困惑。它们之间有什么区别?请举一些例子说明何时应选择其中一个。BufRead
和 BufEnter
这两个事件感到困惑。它们之间有什么区别?请举一些例子说明何时应选择其中一个。缓冲区是文件的内存表示形式;要编辑一个文件,必须在窗口中显示。
BufRead
事件在Vim将文件读入内存后触发。除非您通过:edit!
重新加载,否则只会发生一次。
BufEnter
在您激活某个缓冲区时触发,即当它成为光标所在的缓冲区时。例如,当您拆分窗口以显示不同的缓冲区并在它们之间移动时。在单个窗口中,当您使用像<C-^>
,:bnext
这样的命令来更改当前编辑的缓冲区时也会触发。
autocmds
)时,许多人都使用了BufRead,BufEnter
?考虑到在开始编辑缓冲区之前,BufEnter
始终会在BufRead
之后发生,为什么还需要使用BufRead
? - Ciro Santilli OurBigBook.comBufRead
会在文件内容被写入缓冲区后触发。
BufEnter
会在您进入某个缓冲区进行编辑后触发。
如果您想在创建缓冲区时执行一些操作:设置一些全局变量,为脚本中使用的自己的缓冲区列表填充数据等,可以使用BufNew
、BufRead
或BufAdd
。
如果您想根据文件类型或其他条件设置特定选项,则可以使用BufEnter
。
:help BufRead
和:help BufEnter
吗? - user849425