2023-10-09 09:00:01

在插入模式下粘贴?

是否可以在Vim中以插入模式粘贴?


当前回答

在插入模式下,你可以使用Ctrl-R {register},其中register可以是:

+对于剪贴板, *对于X剪贴板(X中最后选择的文本), 对于未命名的寄存器(Vim中的最后一次删除或yank), 或者其他一些寄存器(参见:h寄存器)。

Ctrl-R {register}插入文本,就像输入文本一样。

Ctrl-R Ctrl-O {register}用原始缩进插入文本。

Ctrl-R Ctrl-P {register}插入文本并自动缩进它。

在返回到插入模式之前,Ctrl-O可以用来运行任何正常模式命令,因此也可以使用Ctrl-O”+p。

有关更多信息,请使用:h i_ctrl-r查看文档

其他回答

还可以使用鼠标中间按钮在插入模式下粘贴(仅适用于Linux)。

是的。在Windows中,Ctrl+V和Linux中几乎同时按下两个鼠标按钮。

在Windows中,我认为我的_vimrc中的这一行可能做到了:

source $VIMRUNTIME/mswin.vim

在Linux中,我不记得我是怎么做到的。看起来我可能从默认的.vimrc文件中删除了一些行。

只需添加地图:

" ~/.vimrc
inoremap <c-p> <c-r>*

重启vim,在插入模式下按下Crtl+p, 复制的文本将被粘贴

插入模式粘贴

在这种情况下,自定义映射似乎比较合适。这是我在插入模式中粘贴拉拽项的方法:

inoremap <Leader>p <ESC>pa

我的领袖键是\;这意味着在插入模式下点击\p将粘贴之前被拉出的项/行。

将此添加到vimrc或init文件中:

imap <silent> PP <ESC>pa . imap <silent> PP <ESC>pa . imap <silent> PP

..在插入模式下粘贴“PP”并保持插入模式。