:registers
命令显示所有寄存器的内容(我忘记了放在什么地方,"*
,".
,"%
等的确切作用是什么。)尤其是因为我在
"
选项中设置viminfo
选项,因此,我的寄存器会在我的vim会话之间保留(一般来说,我希望短期内如此),随着时间的流逝,:registers
列表会越来越长,因此变得越来越繁琐和填充到目前为止,我发现解决此问题的唯一方法是手动编辑
~/.viminfo
中的某些“旧”寄存器内容,这与vim -u NONE
和因此,这有点麻烦。#1 楼
简而言之,没有一种更干净的方法可以彻底擦除寄存器以至于它们从:reg
中消失。 我不是真正地使用
~/.viminfo
,而是通过将它们设置为空白来真正“真正清除”寄存器,而倾向于“ softclear”寄存器。例如,要清除a
寄存器,我键入qaq将a
寄存器设置为空字符串。等效地,:let @a=''
也是如此。 然后,查看
:reg
的输出仍然很有帮助,因为它很容易区分空寄存器和包含的寄存器。另一方面,我发现基本上我所有的命名寄存器都位于第一行(宏)或主行(有用的粘贴内容)上,即使那样,我也只使用了大约15个命名寄存器。几年前,vim邮件列表上有一个线程,它还得出结论,没有更简单的方法来擦除寄存器。
#2 楼
对于那些想要从a
列表中删除寄存器名称(例如:registers
)的人,现在有一种方法可以这样做。运行命令:call setreg('a', [])
。我从用户@LucHermitte在StackOverflow上的此问题中发现了这个问题。他的答案详细说明了如何清除多个寄存器。如果您想轻松完成此任务,请使用您的
.vimrc
:) #3 楼
把它放到你的.vimrc
中:添加:command! WipeReg for i in range(34,122) | silent! call setreg(nr2char(i), []) | endfor
#4 楼
对于使用Neovim的用户,您可能会发现您的更改在重新启动后不会保留。清除特定寄存器后(例如,用qaq清除a之后),需要执行以下命令::wshada!
另请参见:
#4444无法清除寄存器在其中录制后
#4288未从shada中删除已删除的标记
评论
感谢您提供的命令,尽管该命令不适用于只读寄存器,如“。,”%,“:,”#
– Ashok Arora
17年3月21日在8:17