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

Joe*_*Joe 15 vim

我已经掌握了在 Vim 中使用寄存器的窍门,但是不必继续输入:reg以查看所有内容的位置会非常方便。是否可以设置 vim 以便寄存器面板始终可见?

Ing*_*kat 19

的输出:reg是短暂的,您必须捕获它(使用:redir),并将其显示在临时缓冲区中,然后找到触发器以定期更新它。可能,但很难,而且我会永久地剥夺你宝贵的屏幕空间。

选择

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

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


Joe*_*Joe 5

事实证明,答案就在vim之外。

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

一个非常简单的方法是使用“watch 命令”和一些命令行捏造:

watch "cat .viminfo | grep -A 1 '\"[0-9a-z]'"
Run Code Online (Sandbox Code Playgroud)

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

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