EditorConfig標準は、ごく少数の変数しか制御できない.dir-locals.elファイルに代わる手法であり、Emacsに限定されずエディタに依存しないという利点があります。これらの設定は.editorconfigという名前のファイルに保存され、そのディレクトリおよびそのサブディレクトリ内のファイルに適用されます。
Emacsに.editorconfigファイルの設定を適用させたい場合は、editorconfig-modeグローバルマイナーモードを有効にする必要があります。通常、これだけで十分です。このモードが有効になると、ファイルを開くたびに、Emacsは.dir-locals.elの場合と同様に、ファイルのディレクトリおよびその親ディレクトリ内で.editorconfigを探します。.editorconfigと.dir-locals.elの両方のファイルが見つかった場合、それらの設定が統合され、競合が生じた場合は、ディレクトリ階層においてより近いファイルの設定が優先されます。両者が等しく近い場合は、.dir-locals.elが優先されます。セキュリティ面では、.editorconfigの設定は、.dir-locals.elやファイルローカル変数からの設定と同様のチェック対象となります(また、enable-local-variablesも適用されます)。ファイル変数の安全性を参照してください。
EditorConfig 標準の indent_size 設定は、Emacs
の固定変数に対応するものではなく、メジャーモードに応じて異なる変数を設定する必要があります。理想的には、すべてのメジャーモードが対応する editorconfig-indent-size-vars
を設定すべきですが、メジャーモードがまだ対応していないために indent_size
が機能しない場合は、そのメジャーモードでどの変数を設定すべきかを Emacs に伝えるために、editorconfig-indentation-alist 変数をカスタマイズできます。
同様に、行末の空白文字をトリミングする方法もいくつかあります。EditorConfig の trim_trailing_whitespace 設定を使用している場合、デフォルトでは editorconfig-mode はファイルを保存するたびに単に delete-trailing-whitespace を呼び出します(Useless Whitespace
を参照)。別の動作を希望する場合は、editorconfig-trim-whitespaces-mode を ws-butler-mode など、好みのマイナーモードに合わせてカスタマイズできます。