[xyzzy:04461] Re: my-open-xxx
- Subject: [xyzzy:04461] Re: my-open-xxx
- From: YAMAMOTO Shinji <sinj@xxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
- X-yzzy-version: 0.2.0.137
藤本さん、こんにちは。山本です。
In message "[xyzzy:04459] Re: my-open-xxx"
Soichiro Fujimoto <robotcat@xxxxxxx> wrote:
> 欲をいうと、Possible completions are:のところで、
> 実際のファイル名ではなく、aliasというか、別名で補完入力ができると
> もっとすごい気がします。
亀井さんのを見て、私も連想リストを使えばよかったと思いました。:)
(defvar *my-favorite-files*
(list '("personal" . "~/.xyzzy")
(cons "public" (concat (si:system-root) "site-lisp/siteinit.l"))))
(defun my-open-favorite-file ()
(interactive)
(let ((file (get-buffer-file-name (selected-buffer)))
name)
(if (or *prefix-args*
(not (rassoc-if #'(lambda (x)
(string-equal
(string-downcase file)
(string-downcase
(merge-pathnames (file-namestring x)
(directory-namestring x)))))
*my-favorite-files*)))
(setq file (cdr (assoc (completing-read "File: "
(mapcar #'car *my-favorite-files*)
:must-match t)
*my-favorite-files*
:test #'string-equal))))
(setq name (file-namestring file))
(if (find-buffer name)
(switch-to-buffer
(if (and (not *prefix-args*)
(eq (selected-buffer) (find-buffer name)))
(other-buffer)
name))
(find-file file))))
--
山本真二 sinj@xxxxxxxxxxxx