如何删除一行而不将其放入我的默认缓冲区?
例子:
line that will be copied. line that I want to be substitued with the previous one.
我正在尝试做的事情:
yy dd p
但是 Vim 将最近复制的字符串替换为已删除(剪切)的字符串。我知道我可以使用像, "1yy, ddthen之类的缓冲区"1p,但是我总是忘记将复制的字符串放在缓冲区中,然后我需要先粘贴我的内容(将被复制的行),然后删除我想要的内容(我想要的行用前一个代替。)
"1yy
dd
"1p
如何在不复制的情况下真正删除 Vi(m) 中的文本?
另一个相关问题是如何在插入模式下转发删除单词?我想要类似于Ctrl+的东西w。
Ctrl
w
使用“黑洞寄存器”,"_真正删除一些东西:"_d。 用于"_dP粘贴某些内容并保留以供进一步粘贴。
"_
"_d
"_dP
对于第二个问题,您可以使用<C-o>dw. <C-o>用于在不离开 插入 模式的情况下执行普通命令。
<C-o>dw
<C-o>
当然,您可以设置自己的映射以节省输入。我有这些:
nnoremap <leader>d "_d xnoremap <leader>d "_d xnoremap <leader>p "_dP