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

[xyzzy:00778] Re: デフォルトのフォルダ



木寅さん、こんにちは。逸見 です。
ぐふっ。

> non-lispな話です。
> xyzzyを起動して、文章を作って、さて
> セーブしようとしたときに、表示されるディレクトリって
> デフォルトでは、xyzzyを起動した場所ですよね。

以下は僕が使っているカスタマイズです。

Ctrl-X F  ファイルを開いたり、新規作成の時の良く行くフォルダを
          登録
Ctrl-X G  grep の時の良く行くフォルダを登録。

「文章を作って、さてセーブしようとしたとき」はもう手おくれ
なんですが、
これから文書を作成するときに、「ここのディレクトリにこういうファイル
名で作ろう!」って決めちゃいます。

たとえばLISPファイルを作る時は

Ctrl-X F L    TABを3回押してファイル名入力して、文書を作り始める。

開くときも Ctrl-X F L これでOK.

;; si-quick.l
;; (C)1998 by M.Henmi
;; 1998/8/15 ファイルを分離
;; QuickOpenメニュー

(load-library "henmi/mygrepd")

(defun find-file-by-filer (dir)
  (interactive "Ddir : ")
  (multiple-value-bind (files result)
      (filer dir t)
    (if result
	(find-file files)
      (message "canceld"))))


;; --------
(defun quick-menu2 (ch)
  ;;1:新規作成
  (interactive "cK:キー割当 2:名前を付けて保存 3:置換 4:日付と時刻 5:TAGファイルの作成 : ")
  ;;印刷
  (cond ((eql ch #\1) (new-file))
	((eql ch #\2) (save-as-dialog))
	((eql ch #\3) (replace-dialog))
	((eql ch #\4) ; (insert-date-string)
	 (insert (format-date-string "%y年%#m月%#d日(%v)")))
	((eql ch #\5) (make-tags-file-dialog))
	((eql ch #\k) (describe-bindings))
	(t (error "cmd not found"))))

(defun quick-menu ()
  (interactive)
  (toggle-ime nil)
  (call-interactively 'quick-menu2)
)

(define-key ctl-x-map #\q   'quick-menu)
(define-key ctl-x-map #\m   'quick-menu)

(defun xyzzy-directory (s)
  (merge-pathnames s (si:system-root)))

(defun lisp-directory (s)
  (merge-pathnames s
		   (merge-pathnames "lisp" (si:system-root))))

(defun desktop-directory (s)
  (merge-pathnames s (get-special-folder-location :desktop)))

(defun quick-new-henmi (str)
  (interactive "sファイル名[lisp/henmi] ")
  (find-file (lisp-directory (concat "henmi/" str))))

(defun quick-new-vc-knowhow (str)
  (interactive "sファイル名[henmi/vc] ")
  (find-file (merge-pathnames str "c:/henmi/vc")))

(defun quick-new-file (ch)
  (interactive "cH:henmi V:vc-knowhow : ")
  (cond ((eql ch #\h) (call-interactively 'quick-new-henmi))
	((eql ch #\v) (call-interactively 'quick-new-vc-knowhow))
	(t (error "unknown cmd")) ))
	 
(defun quick-open1 (ch)
  (interactive "cS:siteinit X:xyzzy-kh L:lisp M:memo N:新規 : ")
  (cond ((eql ch #\s) (find-file (lisp-directory "siteinit.l")))
	((eql ch #\x) (find-file (lisp-directory "pubhenmi/xyzzy-kh.txt")))
	((eql ch #\l) (find-file-by-filer (lisp-directory "henmi")))
	((eql ch #\m) (find-file-by-filer (lisp-directory "henmi/memo")))
        ((eql ch #\n) (call-interactively 'quick-new-file))
	((eql ch #\SPC)(call-interactively 'quick-open2))
	(t (message "canceled"))
  ))

(defun quick-open ()
  (interactive)
  (toggle-ime nil)
  (call-interactively 'quick-open1))

(define-key ctl-x-map #\f   'quick-open)

(defun quick-open2 (ch)
  (interactive "c6:cpp-kh 7:html-kh 8:vbscript-kh 9:app-menu 0: : ")
  (cond ((eql ch #\6) (find-file (lisp-directory "pubhenmi/cpp-kh.txt")))
	((eql ch #\7) (find-file (lisp-directory "pubhenmi/html-kh.txt")))
	((eql ch #\8) (find-file (lisp-directory "pubhenmi/vbscript-kh.txt")))
	((eql ch #\9) (find-file (lisp-directory "app-menu.l")))
	((eql ch #\SPC) (call-interactively 'quick-open))
	(t (message "canceld"))
  )
)

;; --------------------------------------------------------------------

(defun quick-grep (ch)
  (interactive "cGrep 1:lisp 2:html 3:den8 4:src 5:vc++ 6:mfc : ")
  (cond ((eql ch #\1) (q-search (merge-pathnames "lisp" (si:system-root))
				"*.l"))
	((eql ch #\2) (q-search "c:/cont/lisp/xyzzy" "*.html"))
	((eql ch #\3) (q-search "c:/z/den8_321" "*.txt"))
;	((eql ch #\4) (q-search "c:/proj-m/danmamu" "*.cpp;*.h"))
	((eql ch #\4) (q-search "c:/src.581/src" "*.cc"))
	(t (call-interactively 'quick-grep2))))

(defun quick-grep2 (ch)
  (interactive "cGrep 5:msdev/include 6:mfc/include 7:mfc/src : ")
  (cond
	((eql ch #\5) (q-search "c:/msdev/include"     "*.h"))
	((eql ch #\6) (q-search "c:/msdev/mfc/include" "*.h"))
	((eql ch #\7) (q-search "c:/msdev/mfc/src"     "*.c*"))
	(t (call-interactively 'quick-grep2))))

(define-key ctl-x-map #\g   'quick-grep)


------------------------------------------------------------
逸見雅人        Email   henmi@xxxxxxxxxxxxx
Masahito Henmi

Index Home