(この記事には補足があります。最後までお読みください)
個人的に書くコードはソフトタブ(空白文字でインデント)だけど、仕事のJavaScriptのコーディングルールはハードタブ(水平タブ文字でインデント)なんだよー、仕事で書くコードは全て hoge
が含まれるディレクトリにあるよー、な場合。
なんか適当。正規表現も setq
する内容もフックの名前も各自よしなに。要するにモードにフックを追加するだけです。 .emacs.d/init.el
とかにどうぞ。
(add-hook
'js-mode-hook
(lambda ()
(when (string-match ".*hoge.*/.*\\.js"
(or (buffer-file-name) ""))
(setq indent-tabs-mode t tab-width 4))))
追記
js2-mode
とか使ってる場合は js2-mode-hook
、PHPなら php-mode-hook
とか、よしなに書いてくださいね。
メジャーモードによってはフックが提供されてない場合は、さあどうすれば良いのでせうね ヾ(〃><)ノ゙☆
補足
@yasuyk@github さんのおっしゃる通り、 .dir-locals.el
による ディレクトリ変数 を活用するのも良い方法です。 (僕もコメントで指摘いただくまで存じ上げませんでした…!)
ただし、ディレクトリ変数が階層構造による「変数の制禦」を目的とするものであること、上記のコード断片はディクトリ階層ではなく パス中に含まれる文字列 による判定を主眼としたもの (階層に依存しない) であることを理解の上で、目的に合致したものを活用するのが良いですね ヾ(〃><)ノ゙☆