登録したファイルを開く
F1を押したら.xyzzyを開いて、F2を押したらメモを開いて……、と設定しておくと便利である。
でも、ファイル1つ1つにコマンドを作っては芸がない。ということで、次のコマンドを書いてみた。
(defvar *favorite* '((#\F1 "~/.xyzzy") (#\F2 "~/memo"))) (defun open-favorite () (interactive) "登録したファイルを開く" (labels ((func (c) (interactive "c呼出文字: ") (let ((f (assoc c *favorite*))) (if f (find-file (cadr f)))))) (or (func *last-command-char*) (call-interactively #'func) (message "ないよ")))) (global-set-key #\F1 'open-favorite) (global-set-key #\F2 'open-favorite) (global-set-key #\F3 'open-favorite)
labelsの挙動は柔軟性があって好きなのだ。