私は、カスタムマクロを持つEmacs Lispファイルを持っています。私はwhen-let
がfont-lock-keyword
としてフォント表示化し、上記のように字下げたいファイル単位のカスタマイズのためのEmacs
(defmacro* when-let ((var value) &rest body)
`(let ((,var ,value))
(when ,var ,@body)))
(defun func()
(when-let (a 1)
a))
:コードは次のようになります。私は私の.emacsファイルでこれを行うことができますが、私はそれをローカルのディレクトリにするか、ローカルのカスタマイズファイルを作ることを好みます。問題は、ディレクトリローカルとファイルローカルのカスタマイズが変数の設定に制限されているように見えることです。私の.emacsファイルには次のものがあります。
(add-hook 'emacs-lisp-mode-hook
(lambda()
(put 'when-let 'lisp-indent-function 1)
(font-lock-add-keywords nil
'(("(\\(when-let\\)\\>" 1
font-lock-keyword-face)))))
.dir-locals.el
これは1つのファイルにのみ適用されるため、これを使用します。
説明の一部として、上記のコードブロックは、適用したいファイルの先頭に移動する必要があります。これは、ファイルの言語でコメントとして表示される限り(たとえば、C++ファイルでは、;;;は//に置き換えることができます)、任意のタイプのファイルに対して機能します。 – jwernerny
私はそれがどこにでも行くことができると期待していますが、ファイルのまさに*最後にこのようなローカル変数ブロックを配置するのがより一般的です。ファイルの* top *のファイルローカル変数は、常に他の構文を使用します( 'C-h i g''(emacs)ファイル変数の指定 '' RET'を参照してください)。 – phils