vim: expandtabとか、vim: softtabstopが使えないなぁ!という時

1 Mins read

vimでソースの頭によくこんなふうに記載します。

/* vim: set expandtab tabstop=2 softtabstop=2 shiftwidth=2 foldmethod=marker enc=utf-8 : */

ところが、どうも設定が反映されていない!ということでよくよく調べたら

モードラインを使って、ファイルごとにvimエディタのオプションを指定する。 — 名無しのvim使い

ファイルタイプ別ではなくファイルごとにエディタの設定を変更したい場合、 ファイルにvimエディタ特有の記述をしておくことで、 そのファイルがvimエディタで開かれた時に特定の設定を有効にするモードラインという 機能が役に立ちます。 モードラインの書き方を覚えておくと、 他の方にファイルを読ませたい時、プロジェクト特有のルールがある時、 他の環境にファイルを移す時などに役に立ちます。 (Windows, Mac)

で、そもそも、このモードラインを

set modeline

で、有効にしておかないと使えないということが判明しました。
なんでデフォルトでは使えないのかなぁ。