VIMは貼り付けたものをコメントアウトします


14

この要点をvimにコピーしようとしたときにこれを取得しました:https : //gist.github.com/w0ng/3278077

ここに画像の説明を入力してください

どこでも同じ動作に気づきます。コメントを含むものを貼り付けると、コメントに続くものすべてにコメントが貼り付けられます。

たぶん、挿入モードでコメントを書いてEnterを押すと、次の行が自動的にコメントを追加するという事実と関係があるのか​​もしれません。

どうすればこの動作を取り除くことができますか?

回答:


26

貼り付ける前に貼り付けモードに入ります。

:set paste

「通常」モードに戻すには:

:set nopaste

6
または:set paste!トグルする:)
バルバカ

@valbaca code blocksコメントで作成するためにバックティックを使用できます
-Izkata

私はそれらのコマンドが逆の方法で必要でした!

11

Matが言及しpasteオプションのほかに、VIMからXクリップボードに直接アクセスすることもできます。

  • "*p X11選択を挿入するには
  • "+p X11クリップボードを挿入するには

X11サポート付きのVIMバージョンが必要です(Debianおよびその派生物では、vim-gtkor vim-gnomeパッケージをインストールする必要があります)。

詳細については、ドキュメント:help x11-selection)を参照してください。


6

ここで何が起こっているのかです。コメント行にいるときに新しい行を自動的にコメントアウトするVimフォーマットオプションがあります。これらのオプションの一部は通常、デフォルトで有効になっています。例えば、

# a comment<CR>
# 

ご覧のとおり、新しい行にはコメント文字が自動的に追加されています。あなたは削除することで、これらのオプションの大部分を無効にすることができますcし、r設定からformatoptions:h fo-tableこれらのオプションの詳細については、を参照してください。

:set formatoptions-=cr

Vimには、ターミナルエミュレータの貼り付けメカニズムで貼り付けられたテキストと、入力したテキストを区別する方法がありません。貼り付けオプション(set paste)を設定すると、Vimは貼り付けられたテキストを予期し、望ましくないフォーマットオプションを無効にします。


3

私のお気に入りはputコマンドの使用です。

  • :put* 現在の行の選択範囲から貼り付け
  • :put+ 現在の行でバッファから貼り付けます

"*p/ "+pも良いですが、:pu[t]いくつかの利点があります:

  • 常に行ごとに貼り付けます
  • 追加のパラメーターを追加して、挿入する場所を制御できます。
    • :$put+ 最後の行の後に貼り付けます
    • :0put+ ファイルの先頭に貼り付けます

1

副次的な答えとして、これを含むファイルがある場合は、垂直視覚ブロックモードに入ることでそれを取り除くことができます

ctrl+ vそして、矢印キー/ hjklを使用して、削除したい部分をナビゲートしてから、単にd

貼り付けモードの設定を取り消したり、貼り付けモードを貼り付けたり解除したりするよりも、この方が速い場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.