如何在经过一些治疗后制作一张vim贴图进行自然治疗

时间:2012-08-01 13:10:34

标签: vim

我想映射一个Shift + Insert,因为我通常会粘贴代码进行学习(或者甚至需要一些stackoverflow的问题来准备答案)。但是,如果映射为.cpp和.h,则粘贴的代码会显示为混乱。

示例:

1  class A {
2 }
3 public:
4     class B {
5     }
6             // ...
7             //     };
8             //         static void f();
9             //             // ...
10             //             };
11             //             )

问题Import nested classes into namespace - C++的原始代码:

class A {
public:
    class B {
        // ...
    };
    static void f();
    // ...
};

要避免这样做,必须运行::set paste

所以,问题是,如何映射Shift + Insert,就像imap <S-Insert> <Esc>:set paste<CR>i一样,并且在这里将Shift + Insert传递给它的自然行为,即粘贴然后转回并设置{{1回来?

观察值: {被映射到断行和放置和结束},以及粘贴的文本将被搞砸的那种地图。

感谢。

2 个答案:

答案 0 :(得分:3)

来自:help 'paste'

  

由于“粘贴”处于活动状态时映射不起作用,因此您需要使用   'pastetoggle'选项用一些键切换'paste'选项。

所以解决办法就是这样。

:set pastetoggle=<F12>

并在粘贴时使用以下序列:<F12>i(粘贴)<Esc><F12>

答案 1 :(得分:1)

Vim自己的特殊寄存器*+允许绕过通过终端的抖动粘贴。来自X选择寄存器的"*p粘贴和来自剪贴板的"+p粘贴。在Windows中,这些都链接到同一个IIRC。