[xyzzy:00778] Re: デフォルトのフォルダ
- Subject: [xyzzy:00778] Re: デフォルトのフォルダ
- From: Masahito Henmi <henmi@xxxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
木寅さん、こんにちは。逸見 です。
ぐふっ。
> 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