在正常模式下插入空格(在插入模式下使用)

时间:2014-10-21 12:38:03

标签: vim whitespace

根据quick command in insert mode的想法,我想在插入模式下插入我的操作系统剪贴板。为了实现我想要的,我必须在inoremap电话中添加一个空格,但我不知道怎么做?

这是通过

完成的
inoremap VV <Esc>"+gP

使用此:

  • &#34; VIM&#34;在操作系统剪贴板中
  • 键入插入模式&#34;智能地使用VV&#34;

导致结果

work smart withvim

我想要的是与vim之间的空白

work smart with vim

有什么建议吗?

3 个答案:

答案 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