我已经掌握了在 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
插入模式下显示并让您选择寄存器。