EditorConfig標準(EditorConfig standard)とは.dir-locals.elの代替えであり、非常に少ない変数はしか制御できませんが、Emacsに特化せずエディター非依存だという利点があります。これらのセッティングは.editorconfigという名前のファイルに格納されて、そのディレクトリーとサブディレクトリーのファイルに効果を及ぼします。
Emacsを.editorconfigファイルのセッティングにしたがわせたい場合には、グローバルメジャーモードeditorconfig-mode
を有効にする必要があります。通常はこれで充分でしょう。このモードをアクティブにすれば、Emacsがファイルをvisitするたびに、.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
(不要なスペースを参照)を呼び出します。何か別の挙動を望むなら、好みに応じてeditorconfig-trim-whitespaces-mode
をws-butler-mode
のようなマイナーモードにカスタマイズできます。