清除vim寄存器,但仍然能够粘贴

Log*_*gan 1 vim vim-registers

我想在一个给定寄存器中拉出缓冲区的所有匹配行.我选择"A

:g/<match>/y A
Run Code Online (Sandbox Code Playgroud)

为我做了这个伎俩.我猜

"Ap
Run Code Online (Sandbox Code Playgroud)

是粘贴A的内容的命令,我得到了我的匹配线加上旧线,尝试清除A使用

:let @A=''
Run Code Online (Sandbox Code Playgroud)

但仍然能够使用"Ap.我做错了什么?

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 16 2013 20:39:23)
MS-Windows 64-bit GUI version with OLE support
Included patches: 1-52
Run Code Online (Sandbox Code Playgroud)

zza*_*per 6

:let @a=''
Run Code Online (Sandbox Code Playgroud)

a是寄存器的真实名称

A只是一种附加到的方式

:let @A=''
Run Code Online (Sandbox Code Playgroud)

没有任何附加注册即没有效果(此解释后来添加)

:let @A='fred'      appends fred to a
:let @A=@b          appends register b to register a
Run Code Online (Sandbox Code Playgroud)

  • 不知道,但可悲的是没有办法附加到*粘贴寄存器.你必须这样做:让@*= @ a (2认同)

Ken*_*ent 5

你应该做

 let @a=''
Run Code Online (Sandbox Code Playgroud)

通常当我需要清除reg时,我会这样做qaq,我觉得打字更容易.