overlayのサンプル
Emacsで文字列を装飾したり、属性を持たせる場合は propertize関数が
使えますが、バッファにある既存の文字列を加工する場合には
overlayという機構が使えるようです。
勉強がてらサンプルを書いてみました。
コード
(defvar akkari-n-list nil) (defun akkari-n () (interactive) (save-excursion (goto-char (point-min)) (while (re-search-forward "\\(赤座あかり\\)" nil t nil) (let ((lay (make-overlay (match-beginning 1) (match-end 1))) (color (background-color-at-point))) (push lay akkari-n-list) (overlay-put lay 'face `((:foreground ,color))))))) (defun un-akkari-n () (interactive) (dolist (lay akkari-n-list) (delete-overlay lay)) (setq akkari-n-list nil))