'define-and-bind-command' の強調表示は、'font-lock-add-keywords' を使用して非常に簡単に実現できます。
(defun my-elisp-mode-keywords()
(font-lock-add-keywords nil
'(
("\\<\\(define-and-bind-command\\)" . 'font-lock-keyword-face)
)
)
)
もちろん、「font-lock-keyword-face」を好みの任意のフェイスに変更したり、独自のフェイスを作成して使用したりできます。テキストのフォントロックされた部分にポイント (カーソル) を移動し、「describe-face」と入力してから return を入力すると、既に使用されているフェイスの名前を非常に簡単に見つけることができます。
Edit2:ああ、もちろん、elisp モードの場合は、その defun をいくつかのフックにフックする必要があります。
(add-hook 'emacs-lisp-mode-hook 'my-elisp-mode-keywords)
正規表現を使用して foo 部分を強調表示できます。
残念ながら、「define-and-bind-command」を含む正規表現を照合する方法がわからないため、その部分についてはまだお手伝いできませんが、後の単語のみを強調表示します。
編集:「define-and-bind-command」と foo 部分の両方を同じ面で強調表示したい場合を除き、それは非常に簡単なはずです。しかし、あなたは彼らに別の顔を持たせたいと思いますか?
Edit3:私のコードを修正し、stackoverflowは前にいくつかの中かっこを食べました...
Edit4:さて、私は2番目の部分だけを一致させるための解決策を持っています.私はそれを広範囲にテストしていませんが、うまくいくようです. 私は foo にスペース (および私が思うに改行) 以外の任意の文字を含めることを許可しました。そのイベントをさらに a-zA-z0-9 と "-" に制限できると思いますので、お好みに合わせて自由に変更してください。foo 部分のみのマッチングを担当するコードは次のとおりです。
("\\bdefine-and-bind-command\s\\([^\s]*\\)" 1 'font-lock-function-name-face t)
上記の関数の他の font-lock キーワードの後の行にそれを挿入すると、準備完了です。正規表現は、'define-and-bind-command' に一致します。このコマンドは、単語 ( \bの場合) の後にスペースが続く必要があり、スペースが存在するまで続くすべてを返します (フォントロック)。
お役に立てれば!