要实现仅粘贴一次,我可以使用:
noremap <silent> p p:let @"=""<cr>
这会在粘贴后清除寄存器,所以下一次粘贴将不起作用。然而,会发生空白粘贴,更新撤消。因此,按下p键3
次将需要3
个撤消调用来撤消初始粘贴。
如何禁止这种情况?我尝试了以下内容:
:noremap <expr> @" != "" ? p:let @"="" : <Nop> <cr>
但它并不强制任何改变。
要实现仅粘贴一次,我可以使用:
noremap <silent> p p:let @"=""<cr>
这会在粘贴后清除寄存器,所以下一次粘贴将不起作用。然而,会发生空白粘贴,更新撤消。因此,按下p键3
次将需要3
个撤消调用来撤消初始粘贴。
如何禁止这种情况?我尝试了以下内容:
:noremap <expr> @" != "" ? p:let @"="" : <Nop> <cr>
:noremap <silent> <expr> p @" != "" ? 'p:let @"=""<cr>' : ""
简单来说:
:noremap <silent> <expr> p @" != "" ? 'pq"q' : ""
qXq
来清空任何 X 寄存器,并且它也适用于@"
寄存器(我通过回答你的问题发现了这一点)... 无论如何,如果第一个有效那也不是问题! - yolenoyer