Vim – 改行時にインデントを自動で整形する設定方法【有効/無効】

midSun31midSun31
IT・デジタル

Vimエディタではファイルタイプを自動で判別できるため、よく使われる言語であればインデントなども自動で整形してくれます。

ただ、インデントが設定されていない言語やファイル名を指定せずに新規作成する場合はデフォルトの自動整形が有効になりません。そのようなケースでも、コマンドによって改行時にインデントを自動で整形することができます。

この記事では、Vimの自動インデントの種類と設定を有効/無効にする方法をご紹介します。

OSはWindows10、Vimのバージョンは8.1を利用しています。Mac、Linuxでも手順は共通です。

Vimで設定できる自動インデントの種類

Vimエディタで設定できる自動インデントには、主に以下の種類があります。

autoindent

autoindentは、改行時に現在の行のインデントをキープします。

便利ではありますが、コードを書く際に字下げされることはありません。

smartindent

smartindentは、C言語風のプログラミング言語向けの自動インデント機能です。例えば「{」を判別し、直下の行であればインデントを加えるというルールになっています。

シンプルなルールなので、以下のようにswitch文のcaseなど一部の構文の場合のインデントできません。

cindent

cindentは、C言語に特化したインデントです。smartindent のような共通ルールでなく、C言語の文法に基づいてインデントを行います。

smartindentでは対応できなかったcase文のインデントができるようになりました。

自動インデントを有効に設定する

「autoindent」を有効にするには、Vimエディタ上でインデントの種類を:setで指定して設定します。

:set autoindent
:set smartindent
:set cindent

*smartindentは、autoindentが設定済みの場合に限って有効になります。

設定後にVimエディタ上で改行すると、自動でインデントされるようになります。

デフォルトの設定を変更したい場合

毎回:setで設定するのが手間の場合は、vimrcの設定ファイルを編集します。

以下のように設定したいインデントの種類のコマンドをvimrcファイルに追記して下さい。

set autoindent
set smartindent
set cindent

自動インデントを無効に設定する

「autoindent」を無効にするには、Vim上でインデントの種類名に「no」を付けてsetコマンドを実行します。

:set noautoindent
:set nosmartindent
:set nocindent

コマンドを実行すると自動インデントの設定が無効になります。

以上、Vimエディタで改行時にインデントを自動で整形する設定方法でした。

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

コメント