朝寝して宵寝するまで昼寝して時々起きて居眠りをする
psearch on xyzzy はものすごく便利、と昔も投稿していますが、最近検索結果への色付けをはじめたところ、検索するごとに色をつけていってくれて自動で消してくれる機能がない。というわけで関数を一部上書きしてこんなんにして使っています。
;;;;;;;;;;;;;;;;; ;; ■ psearch ポップアップリストで検索 (require "psearch") (global-set-key #\C-] 'psearch-popup-string-list) (global-set-key #\M-] 'psearch-popup-list-again) (global-set-key #\C-: 'psearch-popup-string-list-word-search) (global-set-key #\M-: 'psearch-popup-list-again-word-search) (global-set-key #\C-M-] 'psearch-goto-return-point) ;; インクリメンタルサーチでも使う (define-key *isearch-map* #\C-] 'psearch-popup-string-list-isearch) (define-key *isearch-map* #\C-: 'psearch-popup-string-list-word-search-isearch) ;; 色付けをする (setq *psearch-coloring* t) (global-set-key '(#\C-c #\]) 'psearch-delete-attributes) (add-hook '*show-match-hook* 'psearch-coloring) ;; ポップアップリストを作る前に走る hook を追加するために関数を上書き (in-package "editor") (export '*before-psearch-hook*) (defun psearch-popup-list (str case-fold word-search coloring regexp) (run-hooks '*before-psearch-hook*) (let ((list (psearch-make-list str case-fold word-search coloring regexp))) (unless list (let ((s (psearch-message-string str regexp))) (if regexp (plain-error "~A: 正規表現が見つかりません" s) (plain-error "~A: 文字列が見つかりません" s)))) (popup-list list (psearch-goto-function case-fold word-search regexp)) (let ((match-number *psearch-match-number*) (len (list-length list)) (s (psearch-message-string str regexp))) (if (= len match-number) (message "~A: ~D" s len) (message "~A: ~D(~D)" s len match-number))) (run-hooks '*psearch-hook*))) (in-package "user") ;; ポップアップリストを出しなおすときは、一旦それまでの色をクリアする (add-hook '*before-psearch-hook* 'psearch-delete-attributes)