在 vim 中始终显示寄存器列表

在 vim 中始终显示寄存器列表

我已经掌握了在 Vim 中使用寄存器的技巧,但如果不需要继续输入:reg就能看到所有内容的位置,那就太方便了。是否可以设置 vim 以使寄存器面板始终可见?

答案1

的输出:reg是短暂的,你必须用 来捕捉它:redir,然后在暂存缓冲区,然后找到触发器来定期更新它。有可能,但很难,而且我会永久地剥夺你宝贵的屏幕空间。

选择

相反,我有一个快捷方式来快速调出最重要的内容。因为""与省略寄存器规范相同,所以这很容易输入(特别是在第一个之后",当我开始思考:“好吧,我想要哪个寄存器?”时,我可以输入另一个",并获得这个方便的帮助),并且它不会覆盖任何内置命令。

" List contents of all registers (that typically contain pasteable text).
nnoremap <silent> "" :registers "0123456789abcdefghijklmnopqrstuvwxyz*+.<CR>

答案2

事实证明答案是在 vim 之外。

vim 将其寄存器存储在 .viminfo 文件中(通常在根目录中) - 所以我们实际上只需要观察它的变化。

一个非常简单的方法是使用“watch 命令”,并加上一些命令行修改:

watch "cat .viminfo | grep -A 1 '\"[0-9a-z]'"

这将打印出 vim 寄存器的当前状态,并且可以在完全不同的窗口中运行。

一个小缺点是 vim 通常只在文件退出时将其寄存器保存到 viminfo,但您可以使用命令 ':wv' 强制保存。将其映射到备用键可让您一键更新寄存器视图。

答案3

在寻找替代打字的方法时:reg,我发现了这个插件:

https://github.com/junegunn/vim-peekaboo

"它在您键入时、@在正常模式和CTRL-r插入模式下显示并让您选择寄存器。

我在这里找到了它:https://github.com/junegunn/fzf.vim/issues/10

相关内容