Vim "paste once" 不更新撤消
Vim "paste once" without update of undo
实现一次粘贴我可以使用:
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' : ""
实现一次粘贴我可以使用:
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' : ""