Vim – コピー・ペースト(貼り付け)時にインデントがずれる時の対処法

midSun31midSun31
IT・デジタル

Vimエディタにおいて、クリップボードからプログラムのソースコードを貼り付けるとインデントがずれる事象が発生するケースがあります。

この記事では、Vimでコピー・ペーストした時にインデントがずれる問題への対処法を紹介していきます。

コピー・ペースト時にインデントがずれる原因

Vimエディタ上でファイルの内容をヤンク(コピー)してペーストすると、同じ内容なのにインデントがずれてしまいます。

同じ内容のメソッドなのに、ペーストした方はインデントがずれてしまっているのがわかります。

上記のようにインデントが崩れる原因は、Vimのインデント機能によって改行後にインデントが自動で追加されてしまうためです。

対処1 「paste」を使う

「paste」コマンドを使用すると、挿入モードでインデントを無効にすることができます。

  1. ノーマルモードの状態で次のコマンドを入力します。
    :set paste
  2. 「i」キーを入力して挿入モードに入ってペーストします。インデントを崩さずにペーストできます。

対処2 「noautoindent」を使う

Vimのインデント機能自体をオフにする方法でも、ペースト時にインデントがずれるのを防止できます。

  1. Vimの自動インデント機能が無効にします。ノーマルモードの状態で次のコマンドを入力してEnterキー押します。
    :set noautoindent
  2. 「i」キーを入力して挿入モードに入ってペーストします。インデントを崩さずにペーストできます。
  3. Vimの自動インデント機能を再度有効に戻します。次のコマンドを入力してEnterキー押します。
    :set autoindent

対処3 ペーストした後に該当箇所のインデントを一括修正する

ファイルの編集中にペースト後にインデントが崩れた場合は、インデントの一括修正機能を使う方法が便利です。

  1. インデントがずれた行までカーソルを移動し、「V」(Shift + v)キーを入力して行選択のビジュアルモードに入ります。
  2. カーソルを移動してインデントを修正したい範囲全体を選択します。
  3. 「=」キーを入力すると、選択範囲のインデントを一括で修正することができます。

以上、Vimエディタでコピー・ペースト時にインデントがずれる時の対処法でした。

IT・デジタル
Howpon[ハウポン]

コメント