• xyzzy wiki


  • まずは環境変数を設定
ユーザ環境変数
変数名 XYZZYHOME
変数値 C:\Program Files\xyzzyとか


  • オススメ色設定
usr/ログイン名/プラットフォーム/xyzzy.ini
を変更する。

[Colors]
textColor=#d0d0d0
backColor=#3c2800
ctlColor=#8080
selectionTextColor=#ffffff
selectionBackColor=#820000
kwdColor1=#98fb98
kwdColor2=#82ddee
kwdColor3=#ffff00
stringColor=#7aa0ff
commentColor=#45ff
tagColor=#face87
cursorColor=#800080
caretColor=#e8cc80
imeCaretColor=#d4eefc
linenum=#604000
reverse=#fcf8
unselectedModeLineFg=#13000000
unselectedModeLineBg=#10e8e8e8
modeLineFg=#d0d0d0
modeLineBg=#13000000
fg1=#4e4f2f


  • 実はデフォでタブ化できます
表示→ツールバー→バッファでOK


  • セッションファイルの関連付け
フォルダオプションから登録
新しいアクションで、
アクション:open
アクションを実行するアプリケーション:"xyzzycli.exeのパス" -S "%1"
と設定。-Sを-sにすると、セッションの変更を自動で保存するモードになる。
その他の起動オプションについては、xyzzyのフォルダ内のhtmlフォルダにある、00README.htmlを参照


  • キーボードマクロでインデント(JavaTinyConsoleを使うとCtrl+Alt+qがうまくいかないから→※嘘でした。「前括弧」の「前」にカーソル置いてCtrl+Alt+qなのを間違えて「後ろ」でやってただけでした)
キーボードマクロに「TAB ↓」で登録
ツールから読み込んでから、
「Esc 0 Ctrl+x e」
で、ファイルの最後まで繰り返します。


  • abbrevの設定
静的補完機能です。
①「Alt-x abbrev-mode」
②登録したい部分の頭にカーソルをあわせ「Ctrl+Space」
③登録したい部分の最後にカーソルをあわせ「Esc 0 Ctrl-x Ctrl-a」
④略称入力
⑤「Alt-x write-abbrev-file」で保存。ホームの「.abbrev_defs」に保存されます。環境変数の設定をちゃんとしておくこと
⑥略称を入力してスペースを押すと補完されます。
⑦モードの出入りはどちらも①のコマンド
⑧モードに入っていなくても「Ctrl-x '」で補完されます。キーバインドを登録しておくのもいいかも


  • 各種カスタマイズ
カスタマイズは、.xyzzyかsiteinit.lに記述することで行う。
siteinit.lはsite_lispフォルダ内に作成。記述後、バイトコンパイルを行うこと。こっちを推奨。
.xyzzyは、xyzzy.exeの位置に作成。リネームでは作れないので、メモ帳などから名前を付けて保存する。バイトコンパイル不要。再起動でok。


  • バイトコンパイル
xyzzyを起動し、
alt-x byte-compile-file RETERN (lispディレクトリのパス)/~.l RETERN
xyzzy.wxpを削除して再起動

※コマンド入力はRETERNでかなり補完してくれます


  • インデントサイズの変更(Cプログラミング)
c-mode.lを書き換えて、バイトコンパイルする

以下、数値は順にK&R、BSD、GNU(defult)
c-indent-level 5 8 2
c-continued-statement-offset 5 8 2
c-argdecl-indent 0 8 5
c-brace-offset -5 -8 0
c-brace-imaginary-offset 0 0 0
c-label-offset -5 -8 -2

インデント方法 → { に合わせて Ctrl + Alt + q


  • siteinit.lの各種設定(要バイトコンパイル)
C-z(Undo),C-v(貼り付け)にキーバインドを変更する。
C-c及びC-xは通常はEmacsと同様なprefixキーで,
範囲指定している場合のみコピーと切り取りに変更
(load-library "winkey")

キーバインドをWindowsとほぼ完全に同じに
×(load-library "Gates")

バックアップファイルの保存位置を変更(詳細はbackup.l)
(require "backup")
(setq *backup-directory* "backup")

インクリメントサーチ(×Ctrl+fを割り当てCtrl+sはセーブのままに)
(require "isearch")
×(global-set-key #\c-f #'isearch-forward)
×(global-set-key #\c-s #'save-buffer-dialog)

関数一覧表示のキーバインドをCtrl+7に
(global-set-key #\c-7 #'list-function)

Ctrl+jで単語の補完、ダイナミックアブリビエイション("expand"を"popup"にすると、ポップアップ型になる)
(require "dabbrev")
(global-set-key #\C-j 'dabbrev-expand)
(setq *popup-completion-list-default* :always)

cモードで「///」以降普通のコメントと色を変える(オススメ色設定のfg1:目立たない色)
(add-hook '*c-mode-hook*
(lambda ()
(make-local-variable 'regexp-keyword-list)
(setq regexp-keyword-list
(compile-regexp-keyword-list '(("///.*$" nil (:color 1 0)))))))

テキストモードで「///」「##」以降コメントの色に変える
(add-hook '*text-mode-hook*
(lambda ()
(make-local-variable 'regexp-keyword-list)
(setq regexp-keyword-list
(compile-regexp-keyword-list '(("///.*$" nil :comment)
("##.*$" nil :comment))))))

マウスのホイールスクロール時キャレット位置を保存
(defvar *mouse-wheel-scroll-origin* nil)
(defun mouse-wheel-scroll-back-to-origin ()
(goto-char *mouse-wheel-scroll-origin*)
(setq *mouse-wheel-scroll-origin* nil)
(delete-hook '*pre-command-hook* 'mouse-wheel-scroll-back-to-origin))
(defun mouse-wheel-scroll-keeping-position (window n lines)
(unless lines
(setq lines (window-lines window)))
(with-selected-window
(set-window window)
(let* ((pos (or *mouse-wheel-scroll-origin*
(point))))
(scroll-window (* n lines))
(if (and (pos-visible-in-window-p pos)
(save-excursion
(forward-line (1+ *scroll-margin*))
(pos-visible-in-window-p (point)))
(save-excursion
(backward-line (1+ *scroll-margin*))
(pos-visible-in-window-p (point))))
(goto-char pos)
(unless *mouse-wheel-scroll-origin*
(setq *mouse-wheel-scroll-origin* pos)
(add-hook '*pre-command-hook* 'mouse-wheel-scroll-back-to-origin))))))
(setq mouse-wheel-handler #'mouse-wheel-scroll-keeping-position)

F8とF9で,バッファ切り替え
(setq *next-buffer-in-tab-order* t)
(setq *previous-buffer-in-tab-order* t)
(global-set-key #\F8 'previous-buffer)
(global-set-key #\F9 'next-buffer)

インデント・オフセット関係(上にc-mode.lを書き換えるやり方があるが、多分後にやった方が優先)
(setq c++-indent-level 4)
(setq c++-continued-statement-offset 4)
(setq c++-argdecl-indent 5)
(setq c++-brace-offset -4)
(setq c++-brace-imaginary-offset 0)
(setq c++-label-offset -4)
(setq c++-comment-indent 0)

(setq c-indent-level 4)
(setq c-continued-statement-offset 4)
(setq c-argdecl-indent 5)
(setq c-brace-offset -4)
(setq c-brace-imaginary-offset 0)
(setq c-label-offset -4)
(setq c-comment-indent 0)

(setq java-indent-level 4)
(setq java-continued-statement-offset 4)
(setq java-argdecl-indent 5)
(setq java-brace-offset -4)
(setq java-brace-imaginary-offset 0)
(setq java-label-offset -4)
(setq java-comment-indent 0)

JavaTinyConsole対策
①jtc-complete.lを書き換える
(define-key ed::*java-mode-map* #\TAB 'jtc-do-completion)
↓
(define-key ed::*java-mode-map* #\c-U 'jtc-do-completion)

②ポップアップの選択をCtrl+Uで行う
(setq *std-control-down-char* #\c-U)

これで、Ctrl+Uで補完+選択、TABで決定となる。
こうしないとTABインデントの便利さを発揮できない。


  • .xyzzyの各種設定(バイトコンパイル不要)
ホームディレクトリに.xyzzyというファイルをつくっときましょう

abbrevの補完ファイルの自動読み込み(siteinit.lだと駄目。.xyzzyに書くべし)
(setq *abbrev-file-name* "~/.abbrev_defs")
(quietly-read-abbrev-file *abbrev-file-name*)
(quietly-read-abbrev-file)
(read-abbrev-file)
最終更新:2007年11月17日 16:40