1

私は通常、勉強のためにコードを貼り付けます(または、答えを準備するためにスタックオーバーフローの質問のいくつかを取ることさえあります)ので、Shift + Insertをマップしたいと思います。しかし、.cpp と .h にマップされると、貼り付けられたコードがめちゃくちゃに見えます。

例:

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

質問の元のコードネストされたクラスを名前空間にインポートする - C++ :

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

これを回避するには、次を実行する必要があります:set paste

それで、問題は、Shift + Insert をマップする方法です。imap <S-Insert> <Esc>:set paste<CR>iここでは、Shift + Insert をその自然な動作、つまり貼り付けてから元に戻し、元に戻すのと同じように渡し:set paste!ますか?

Obs.: { は改行と配置と終了 } にマップされます。そのようなマップでは、貼り付けられたテキストが台無しになります。

ありがとう。

4

2 に答える 2

3

から:help 'paste':

「貼り付け」がアクティブな間はマッピングが機能しないため、「貼り付け」オプションを何らかのキーで切り替えるには、「貼り付けトグル」オプションを使用する必要があります。

したがって、解決策は次のとおりです。

:set pastetoggle=<F12>

貼り付け時に次のシーケンスを使用するには: <F12>i(貼り付け)<Esc><F12>

于 2012-08-01T14:07:08.653 に答える
1

Vim 独自の特殊レジスタ*+使用して、ターミナルを介した不安定な貼り付けをバイパスできます。"*pX 選択レジスタから"+p貼り付け、クリップボードから貼り付けます。Windows では、これらは両方とも同じ IIRC にリンクされています。

于 2012-11-20T07:44:33.853 に答える