Vimで貼り付け時にautoindentをオフにする

参考: Turning off auto-indent when pasting text into Vim

Vimにコードを貼り付けると、自動インデントによって貼り付けた行がどんどん右へずれてしまうことがあります。この場合のために、Vimには特別な paste モードがあります。

貼り付ける前に、次を実行します。

:set paste

その後、コードを貼り付けます。pasteモードが有効な間、Vimには -- INSERT (paste) -- と表示されるはずです。

貼り付けが終わったら、入力中に通常の自動インデントが働くように、pasteモードを再びオフにします。

:set nopaste

毎回これらのコマンドを入力するのは面倒なので、私は編集中に <F3> でpasteモードを切り替えられるようにしています。.vimrc に次を追加します。

set pastetoggle=<F3>

これ以降は、貼り付ける前に <F3> を押し、テキストを貼り付けてから、もう一度 <F3> を押せば通常の編集に戻れます。

新しいVimやターミナル環境では、bracketed pasteのサポートによって自動的に処理される場合があります。それでも貼り付け時にインデントが崩れる場合は、:set paste:set nopaste、または pastetoggle が信頼できるフォールバックとして使えます。

Leave a Reply