在正常模式下,Vim替代直到生产线结束

在正常模式下,Vim替代直到生产线结束,vim,Vim,我用yiw拖动了一些文本。现在,在另一行,我想替换从当前光标位置到行尾的文本,所以我尝试v$p。但是,这也会删除行末尾的换行符,这是我不希望发生的。如何解决此问题?您可以将其删除到空寄存器中,然后使用“\u Dp 或者,如果要保存要删除的文本,可以在正常缓冲区中删除,并使用D“0p 我发现注册表键很笨重,所以我的.vimrc中有它们的映射: " leader means "another option key like cmd or meta, but one you get

我用
yiw
拖动了一些文本。现在,在另一行,我想替换从当前光标位置到行尾的文本,所以我尝试
v$p
。但是,这也会删除行末尾的换行符,这是我不希望发生的。如何解决此问题?

您可以将其删除到空寄存器中,然后使用
“\u Dp

或者,如果要保存要删除的文本,可以在正常缓冲区中删除,并使用
D“0p

我发现注册表键很笨重,所以我的.vimrc中有它们的映射:

" leader means "another option key like cmd or meta, but one you get to choose"
let mapleader = "\<Space>"
" get the yank register, not the thing you just deleted
nnoremap <Leader>p "0p
nnoremap <Leader>P "0P
" don't copy the thing you're gonna delete into the delete register
nnoremap <Leader>d "_d
nnoremap <Leader>D "_D
“leader”表示“另一个选项键,如cmd或meta,但您可以选择一个”
让mapleader=“\”
“去美国佬登记簿,而不是你刚刚删除的东西
nnoremap p“0p
nnoremap P“0P
“不要将要删除的内容复制到删除注册表中
nnoremap d“\u d
nnoremap D“\u D
通过这些绑定,它将变为
Dp
Dp
,具体取决于您是否要保留已删除的文本


如果您根本不想弄乱寄存器,那么总是有简单的
PlD

可以:

  • 在放置前调整视觉区域:

    v$hp
    
  • 如果没有尾随空格,请使用
    :help g
    动作:

    vg_p
    
PlD是最棒的(虽然不美观)。我不想弄乱寄存器,但可能会尝试一下您所描述的!