从剪贴板粘贴并自动切换":set paste"

Jon*_*tke 16 vim paste

当我从剪贴板粘贴东西时,它们通常(总是)是多线的,在那些情况下(仅限那些情况),我想:set paste被触发,因为否则每一行的标签都会增加(你们都是看过!).

虽然问题:set paste在于它表现不佳set smartindent,导致光标跳转到新行的开头而不是正确的缩进.所以我只想为这个实例启用它.

我正在使用Mac,使用Vim sshing到Debian机器,因此使用cmd+ 在插入模式下粘贴v.

Cas*_*bel 7

我不使用mac,但我相信我在这里有前缀:<D-v>应该是指cmd-v.对于插入模式:

:imap <D-v> ^O:set paste<Enter>^R+^O:set nopaste<Enter>
Run Code Online (Sandbox Code Playgroud)

或者真的,只需这样做:

:imap <D-V> ^O"+p
Run Code Online (Sandbox Code Playgroud)

^ O和^ R是文字控制-O和控制-R,您可以使用^ V ^ O(control-v control-o)和^ V ^ R(control-v control-r)键入.插入模式下的Control-O允许您执行一个命令然后返回插入模式; 在这里你可以用它从剪贴板寄存器中放入.

当我测试它们映射到不同的键时,这对我有用,所以你应该全部设置.

不处于插入模式时,无需映射任何内容; 你可以使用"+p.