(setq *kill-ring-max* [数値])
削除バッファに保持されるテキストの数を指定します。デフォルトは16です。
(setq *show-matched-parenthesis* nil)
閉じ括弧を入力した時にいちいち対応する括弧を表示するのが嫌な人は、このように設定しましょう。
(setq *default-buffer-mode* '[モード])
(setq *default-buffer-mode* 'text-mode)
ファイルを指定せずにxyzzyを起動したときのモードを*default-buffer-mode*
に代入します。
ただし、起動直後は必ずLisp Interactionモードで、新しくバッファを作成したときのモードがここで指定したものになります。
(pushnew '("[拡張子]" . [モード]) *auto-mode-alist* :test 'equal)
(pushnew '("\\.xyzzy$" . lisp-mode) *auto-mode-alist* :test 'equal)
ある拡張子のファイルを開くときにどのモードで開くかを設定します。[拡張子]
は正規表現で指定します。
insert-file
C-x iの初期ディレクトリを固定(provide "insert2") (in-package "editor") (export '(insert-file2 *default-insert-file-directory*)) (defvar *default-insert-file-directory* nil) (defun insert-file2 (filename &optional encoding) (interactive "*fInsert file: \n0zEncoding: " :title0 "Insert file" :default0 *default-insert-file-directory*) (let ((*expected-fileio-encoding* (or encoding *expected-fileio-encoding*))) (declare (special *expected-fileio-encoding*)) (setq filename (namestring filename)) (when (special-file-p filename) (error "~aはデバイスファイルです" filename)) (when (file-directory-p filename) (error "~aはディレクトリです" filename)) (unless (and (valid-path-p filename) (file-exist-p filename)) (error "~a\nファイルまたはディレクトリが見つかりません" filename)) (insert-file-contents filename) ) )
(load-library "insert2") (global-set-key #\[キー] 'insert-file2)
(load-library "insert2") (global-set-key #\M-i 'insert-file2)
insert2.lの中で設定した名前を、load-libraryで呼び出します。
カレントディレクトリからinsert-file
を起動したいこともあるでしょうから、ここではinsert-file2
を別のキーM-iに設定しています。
(setq *default-insert-file-directory* "[ディレクトリ]")
(setq *default-insert-file-directory* "d:/home/temporary/")
insert2.lで指定した変数*default-insert-file-directory*
にディレクトリを代入します。
設定を変更することも多いと思うので、ダンプファイルを消す必要のあるsiteinit.lより.xyzzyに記述した方がいいでしょう。
find-file
(C-x C-f)の後F7で.xyzzy、F8でsiteinit.lをロード(define-key minibuffer-local-completion-map #\F7 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (concat (merge-pathnames ".xyzzy" (si:system-root)))))) (define-key minibuffer-local-completion-map #\F8 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (concat (merge-pathnames "site-lisp" (si:system-root)) "/siteinit.l"))))
(defun compile-and-delete-dump-file () (interactive) (and (find-buffer "siteinit.l") (eval-buffer "siteinit.l")) (byte-compile-file (concat (si:system-root) "site-lisp/siteinit.l")) (let ((dumpfile (concat (si:system-root) "xyzzy.w" (case (os-platform) (windows-2000 "2k") (windows-nt "nt") (windows-98 "98") (windows-95 "95") (t "nt"))))) (and (file-exist-p dumpfile) (delete-file dumpfile)))) (global-set-key '(#\C-c #\b) 'compile-and-delete-dump-file)
siteinit.lをバイトコンパイルした後はダンプファイルを削除するのが通常なので、これを一連の動作としてC-c bに割り当てています。新しい環境を入れる時は特に便利なんじゃないかと。
(setq *next-buffer-in-tab-order* t)
標準では、next-buffer
・previous-buffer
で移動するバッファの順序がツールバーのバッファ順と同じではないので、同じにするためにこのように設定します。
(setq-default mode-line-format [フォーマット]) ; モードライン (setq-default title-bar-format [フォーマット]) ; タイトルバー
(setq-default title-bar-format "%b - %p") (setq-default mode-line-format "-%*- %b (%M) [%k:%l] %f [%i]")
%b
%f
%#f
%F
%#F
%*
%#*
%r
%#r
%M
%m
%k
%l
%i
mode-line-format
のみ。%P
mode-line-format
のみ。%h
%#h
%p
%v
(setq *status-bar-format* "[フォーマット]")
t
T
p
c
u
(defun cleanup-window() (interactive) (let ((bufl (buffer-list)) buf name) (loop (setq buf (pop bufl)) (if (null buf) (return nil)) (setq name (buffer-name buf)) (if (member-if #'(lambda (str) (string= name str)) '("[バッファ1]" "[バッファ2]" "[バッファ3]" "[バッファ4]" … )) (delete-buffer buf))) (delete-other-windows))) (global-set-key #\S-F11 'cleanup-window)
Grep、Help、補完リスト(初期設定状態)を使うと、"*grep*" "*Help*" "*Completion*"バッファが作られ、ウィンドウが2つに分割されます。Grep結果などを見終わった後もこれらのバッファは残り、ウィンドウもそのままです。これを消すには、そのバッファでC-x 0としてウィンドウを閉じてからバッファを閉じる必要があります。しかし、これは面倒なので、1キーでこれらの動作ができるように設定します。ここではS-F11に割り当てています。
消したいバッファはこんな感じで羅列してください。
"*grep*" "*Help*" "*Completion*" "*Shell output*" "*Calendar*" "*PickupPatternShow*" "*dictionary*" "*Buffer List*" "*XML Command error*" "*buf2html: HTML*" "buf2html: CSS*" "*output*"
(setq *print-completion-list-hook* '(lambda (list prefix &optional string) (popup-string (format nil "Possible completions are ~D items:\n~{\n~A~}" (length list) list) (point))))
ミニバッファでTabキーを押すと、現在まで入力している文字に続くコマンド・キーワードなどを表示してくれます。しかし、これを表示するたびにいちいち"*Completion*"バッファが開くので後の処理が面倒です。
この設定を追加すると、補完リストはチップヘルプで表示されるようになります。