根据quick command in insert mode的想法,我想在插入模式下插入我的操作系统剪贴板。为了实现我想要的,我必须在inoremap
电话中添加一个空格,但我不知道怎么做?
这是通过
完成的inoremap VV <Esc>"+gP
使用此:
导致结果
work smart withvim
我想要的是与vim之间的空白
work smart with vim
有什么建议吗?
答案 0 :(得分:5)
您的问题是由P
和中的"+gP
引起的,因为离开插入模式会将光标向左移动一个字符{{1} }。
<space>
在光标之前粘贴,以便您的映射在 P
之前粘贴。将<space>
更改为P
应该以肤浅的方式“修复”您的问题。
这是一个更加可靠的替代方案,可以在光标之后插入剪贴板寄存器的内容,而无需离开插入模式:
p
嗯......仅仅使用inoremap VV <C-r>+
?
解决副作用(此处,光标后粘贴)与避免副作用(此处不会使插入模式开始)不同。猜猜哪一个是正确的方法? ; - )
答案 1 :(得分:1)
使用
inoremap VV <Esc>"+gp
P
将光标放在光标前面,p
放在光标之后。
答案 2 :(得分:0)
选项1。
inoremap VV <C-R><C-o>+
Ctrl-R
告诉vim插入寄存器的内容,+
是操作系统剪贴板寄存器。它会像键入内容一样插入剪贴板内容。额外的<c-o>
使得寄存器内容按字面插入,因此像<esc>
或^H
(退格键)这样的内容不像您键入它们那样被解释,而是作为文本插入。
选项2。
inoremap VV <C-o>"+gp
C-o
告诉vim仅针对一个命令进入正常模式,因此您不需要在开始时添加<Esc>
,或在结尾添加i
。