Windows上で何のエディタを使うかは悩ましい。同僚はみなPeggyを使っているが、Emacs使いやvi使いの選択肢にはならない。要はMeadowかxyzzyか、GVimかViViか、という話になる。
長いことMeadowで粘ってきたのだが、結局ケータイの仕事となると半角カナや絵文字が当たり前になるので、そこで誤認識しまくるMeadowは使えないと結論した。フックを書いてディレクトリ名やファイル名で判別するように頑張ったが、所詮限界がある。Emacs 21.3.50では特に問題はないので、Meadowが21.3.50/21.4ベースになればいけそうだけどね。
ということで、xyzzyに移行することにした。初期状態ではEmacsと微妙に非互換なので、~/.xyzzy
にいろいろ書いて矯正してみる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
; search/replace (load-library "isearch") (global-set-key #\M-% 'query-replace) (setf *ispell-command* "C:/xyzzy/ispell-win32/bin/ispell.exe") ; undo/redo (global-set-key #\C-- 'redo) (global-set-key #\C-_ 'undo) (global-set-key #\C-/ 'undo) (define-key ctl-x-map #\u 'undo) ; input (global-set-key #\C-\\ 'toggle-ime) (global-set-key #\M-SPC 'just-one-space) (global-set-key #\M-/ 'dabbrev-expand) ; file stuff (define-key ctl-x-map #\C-w 'emacs-write-file) (define-key ctl-x-map #\d 'open-filer) ; indentation (global-set-key #\C-M-\\ 'indent-region) ; window stuff (define-key ctl-x-map #\3 'split-window-vertically) ; rectangle selection (define-key ctl-x-map '(#\r #\k) 'kill-rectangle) (define-key ctl-x-map '(#\r #\d) 'delete-rectangle) (define-key ctl-x-map '(#\r #\y) 'yank-rectangle) (define-key ctl-x-map '(#\r #\r) 'copy-rectangle) (define-key ctl-x-map '(#\r #\t) 'string-rectangle) ; help stuff (global-set-key '(#\M-\? #\b) 'describe-bindings) (global-set-key '(#\M-\? #\k) 'describe-key) (global-set-key '(#\M-\? #\f) 'describe-function) (global-set-key '(#\M-\? #\v) 'describe-variable) ; miscellaneous stuff (global-set-key #\M-: 'eval-expression) |
おー、いい感じ。そしてcvs-mode
, svn mode
, php-mode
, ruby-mode
などを入れて設定してやったら完璧な使い心地に!軽いし最初からxyzzycli.exe
というのがあるから、別々に起動しても一つのセッションに統合することができる。
Cygwin的には、次のような手抜きスクリプトを書けば環境変数EDITOR
に設定できる。
1 2 3 4 5 6 7 8 9 |
#!/bin/sh prog=/cygdrive/c/xyzzy/xyzzycli.exe if [ $# -eq 0 ]; then exec $prog else exec $prog -wait "$(cygpath -w "$1")" fi |
ただし、Beckyの「外部編集ツール」はプログラムの終了は見ず、ウィンドウが閉じるのを待っているようなので、xyzzycli.exe -wait
ではうまくいかない。仕方ないが、xyzzy.exe
を登録して独立したセッションで編集せねばならない。まあ、そのくらいはいいけどね。
てな感じで快適です。ちなみに、.xyzzy
に(require "Gates")
と書くとWindows標準寄りのキーバインドになるので、実はEmacs使い以外にもおすすめできたり。まあ、面倒はごめんなので秘密にしておきますが。(・∀・)
あ、tdiary-mode
もあるけど、しばしば通信中にxyzzyごと固まってしまうので怖くて使えません。直らないかなー。でないと日記の更新が遅れがちに…。と言い訳