Neovim 缓冲区(buffer)相关事件

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

最近使用SpaceVim的标签栏时发现,新增的空内容缓冲区不会显示在标签栏上方。检查源码后发现,标签栏只监听了BufNewFile和BufReadPost事件,而不监听:enew和:new命令。修改源码后增加了对BufNew事件的监听。通过测试发现,BufAdd和BufNew事件会在新增缓冲区时触发。可以使用命令查看Neovim支持的缓冲区事件列表。

🎯

关键要点

  • 在使用SpaceVim的标签栏时发现新增的空内容缓冲区不显示。
  • 标签栏只监听了BufNewFile和BufReadPost事件,未监听:enew和:new命令。
  • 修改源码后增加了对BufNew事件的监听。
  • BufAdd事件在新增缓冲区时触发。
  • BufNew事件用于新增缓冲区和修改缓冲区名称。
  • BufNewFile事件在开始编辑一个不存在的文件时触发。
  • 可以使用命令:echo getcompletion('Buf', 'event')查看Neovim支持的缓冲区事件列表。
  • 通过测试代码可以验证事件的触发时机。

延伸问答

为什么新增的空内容缓冲区不显示在SpaceVim的标签栏上?

因为标签栏只监听了BufNewFile和BufReadPost事件,而未监听:enew和:new命令。

如何修改SpaceVim源码以解决缓冲区不显示的问题?

需要在源码中增加对BufNew事件的监听。

Neovim支持哪些缓冲区事件?

可以使用命令:echo getcompletion('Buf', 'event')查看支持的缓冲区事件列表。

BufNew事件的触发时机是什么?

BufNew事件在新增缓冲区和修改缓冲区名称时触发。

BufAdd事件在什么情况下会被触发?

BufAdd事件在新增一个缓冲区至缓冲区列表时触发。

如何测试Neovim缓冲区事件的触发?

可以通过编写测试代码并执行相关命令来验证事件的触发时机。

🏷️

标签

➡️

继续阅读