GNU Emacs Manual: Directory Variables の話です。
「このディレクトリ以下のファイルだけはハードタブを使いたい」みたいな状況では、これを使うと便利です。
具体的には、該当ディレクトリに .dir-locals.el
を配置します。
.dir-locals.el
((c-mode . ((c-default-style . "linux")
(indent-tabs-mode . t)
(fill-column . 80))))
こういう記述をすることで、この .dir-locals.el
を含むディレクトリ以下のファイルで c-mode
が使用されるときに、インデントのスタイルが Linux のそれになり、ハードタブになり、段落の詰め込みが80文字の場所で行われるようになります。
すべての major mode に対して設定を適用したい場合は nil
を指定します。
.dir-locals.el
((c-mode . ((c-default-style . "linux")
(fill-column . 80)))
(nil . ((indent-tabs-mode . t))))
こうすると、あらゆる major mode でハードタブが使用されるようになります。
上記のドキュメントには、サブディレクトリに対してのみ設定を適用する方法なども説明されています。
Vim の方から来た方について
vim-localvimrc という Vim で似たようなことをするプラグインがあるようです (使ってないのでよくわかりません)