kakiro-webカキローウェブ

システム開発情報とコンピューター書籍の紹介サイト

CentOS7 コマンド viで貼り付け時にインデントがずれるときの対処

viで貼り付けを行うときに、インデントが以下のようにずれることがあります。

※以下のようなテキストをコピーして貼り付けを行うと、

aaa
  bbb
    ccc
  ddd
eee

※以下のようにインデントがずれてしまう。

aaa
  bbb
      ccc
        ddd
        eee

このようなときの対処方法を以下に示します。

※ここではCentOS7.6を使用して、動作確認を行なっています。

autoindentの設定

viのオプション設定に「autoindent」というものがあり、こちらが有効になっていると、改行したときのインデントが前の行と同じになります。

「autoindent」の現在の設定内容は、viのコマンドモードで以下のコマンドを実行して確認することができます。

:set autoindent?

「autoindent」が無効になっている場合は、以下のように表示されます。

noautoindent

このとき、改行時の動作は以下のようになります。

  aaa ←左にスペースを開けて改行を行うと
_
↑改行後のカーソルの位置は先頭になる

「autoindent」が有効になっている場合は、以下のように表示されます。

autoindent

このとき、改行時の動作は以下のようになります。

  aaa ←左にスペースを開けて改行を行うと
  _
  ↑前の行のスペースに合わせて改行後のカーソルの位置が移動する

「autoindent」を無効にするには、viのコマンドモードで以下のコマンドを実行します。

:set noautoindent

「autoindent」を有効にするには、viのコマンドモードで以下のコマンドを実行します。

:set autoindent

これらの「autoindent」の設定変更は、実行中のviのみに反映されます。

viの全てのオプション設定の状態は、viのコマンドモードで以下のコマンドを実行して確認することができます。

:set all

pasteの設定

viの「autoindent」のオプション設定の状態は、「paste」という設定の状態と連動するようになっています。

「paste」の設定は、viでテキストの貼り付けを行うときに、予想しない作用を避けるためのものとなっています。

「paste」の設定を有効にすると「autoindent」の設定が無効になり、「paste」の設定を無効にすると「autoindent」の設定は「paste」を有効にする前の状態に戻ります。

「paste」の現在の設定内容は、viのコマンドモードで以下のコマンドを実行して確認することができます。

:set paste?

「paste」が無効になっている場合は、以下のように表示されます。

nopaste

「paste」が有効になっている場合は、以下のように表示されます。

paste

「paste」を無効にするには、viのコマンドモードで以下のコマンドを実行します。

:set nopaste

「paste」を有効にするには、viのコマンドモードで以下のコマンドを実行します。

:set paste

これらの「paste」の設定変更は、実行中のviのみに反映されます。

CentOS7 コマンド viで貼り付け時にインデントがずれるときの対処については、以上です。