vimのペーストモードについて

投稿者: | ↻ : 2019年1月28日

vimでコードをペーストする場合に、自動インデントなどが反映され思い通りにならない場合があります。これらを一時的に無効にする設定としてペーストモードがあります。

ペーストモード

ペーストモードは以下のコマンドで設定、解除します。

ペーストモードに設定する


:set paste

ペーストモードを解除する


:set nopaste

ペーストモードを確認する


:set paste?

ペーストモードは自動的には解除されないため、ペーストし終えたら解除する必要があります。vim起動後はペーストモードが解除された状態です。
ペーストモードは自動インデント以外の設定も変更するので、インデントだけで足りるなら編集後に設定が戻るexコマンドの方が楽です。

exコマンドによる切り替え

exコマンドに!を付けることで、自動インデントのみを切り替えられます。

自動インデントを切り替えて追加(:append)


:a!

自動インデントを切り替えて挿入(:insert)


:i!

により現在の自動インデントの設定を反転させて追加(挿入)ができます。exモードが続くのでペースト後、escキーでexモードから抜けると編集が有効になり、自動インデントの設定が戻ります。