[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:04456] Re: my-open-xxx



藤本さん、こんにちは。


 In message "[xyzzy:04452] my-open-xxx"
 Soichiro Fujimoto <robotcat@xxxxxxx> wrote:

> 今は「既に開いてた」を表示しています。何かうまいやり方はありません
> でしょうか?


こんなのでどうでしょう。
*my-favorite-files*は適当に編集してください。

(defvar *my-favorite-files*
  (list (concat (user-homedir-pathname) ".xyzzy")
	(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 (member-if
		  #'(lambda (x)
		      (string-equal (string-downcase file)
				    (string-downcase
				     (merge-pathnames (file-namestring x)
						      (directory-namestring x)))))
		  *my-favorite-files*)))
	(setq file (completing-read "File: " *my-favorite-files*
				    :must-match t :case-fold t)))
    (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

Index Home