我想映射一个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回来?
观察值: {被映射到断行和放置和结束},以及粘贴的文本将被搞砸的那种地图。
感谢。
答案 0 :(得分:3)
来自:help 'paste'
:
由于“粘贴”处于活动状态时映射不起作用,因此您需要使用 'pastetoggle'选项用一些键切换'paste'选项。
所以解决办法就是这样。
:set pastetoggle=<F12>
并在粘贴时使用以下序列:<F12>i
(粘贴)<Esc><F12>
答案 1 :(得分:1)
Vim自己的特殊寄存器*
和+
允许绕过通过终端的抖动粘贴。来自X选择寄存器的"*p
粘贴和来自剪贴板的"+p
粘贴。在Windows中,这些都链接到同一个IIRC。