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缓冲区事件的触发?
可以通过编写测试代码并执行相关命令来验证事件的触发时机。
🏷️
标签
➡️