Vim 如何为使用:registers命令打开的缓冲区创建自动命令

Vim 如何为使用:registers命令打开的缓冲区创建自动命令,vim,neovim,Vim,Neovim,我正在尝试为发出:registers命令时打开的缓冲区创建一个自动命令(或通过任何可以映射以显示它的快捷方式或命令)。我想给一些线条涂上不同的颜色(但这不是问题所在)问题是我不知道如何检测此事件 我已经创建了这个代码段用于调试(打印到id为3的缓冲区,缓冲区名称和缓冲区id),基于我能想到的所有与缓冲区相关的事件,而对于寄存器缓冲区,它什么也不做 function EchoBuf() call appendbufline(3, 1, bufname()) call appendbufli

我正在尝试为发出
:registers
命令时打开的缓冲区创建一个自动命令(或通过任何可以映射以显示它的快捷方式或命令)。我想给一些线条涂上不同的颜色(但这不是问题所在)问题是我不知道如何检测此事件

我已经创建了这个代码段用于调试(打印到id为3的缓冲区,缓冲区名称和缓冲区id),基于我能想到的所有与缓冲区相关的事件,而对于寄存器缓冲区,它什么也不做

function EchoBuf()
  call appendbufline(3, 1, bufname())
  call appendbufline(3, 2, bufnr("%"))
endfunction

autocmd WinEnter,BufAdd,BufNew,BufRead,BufEnter * call EchoBuf()

:寄存器
不会打开缓冲区,它会打开不触发任何事件的
:帮助页面

但是您可以借助于
:help CmdlineLeave
:help getcmdline()


至于在
:registers
中为行着色,最好是自己用数据填充缓冲区,并指定自己的语法?
function! DoSomethingWhenIWantToLookAtMyRegisters()
    if getcmdline() =~ '^reg'
        echomsg 'Here is the list of registers and their content'
    endif
endfunction

augroup MyStuff
    autocmd!
    autocmd CmdlineLeave * call DoSomethingWhenIWantToLookAtMyRegisters()
augroup END