xyzzy の undo/redo を Emacs っぽくする


xyzzy というとても高性能なテキストエディタを愛用しています。これは GNU Emacs という、これまたとても高性能なテキストエディタに良く似た(ちょっと風変わりな)操作性で、Windows 専用に作られているのでもともと UNIX 向けに開発されている Emacs に比べるといろいろ楽な面があります。日本語入力とか。

しかし、 xyzzy はあくまで `Emacs like' なエディタであり、 Emacs の完全移植版ではありません。 Emacs 特有のキーバインドのうち、ほとんどは xyzzy でも変わらず使えますが、ごくごく一部、 Emacs とは違っている部分があります。で、そういう些細なところほど、気になったりするわけです。頻繁にやる動作だから指が覚えちゃってたりして。

で、自分の場合は undo/redo がその `些細なところ' でして。 xyzzy を使い始める以前は Meadow というこれまた素晴らしいエディタを使っていたんですが、そのおかげですっかり Emacs の特殊な undo/redo に慣れてしまい、 xyzzy の親切な undo/redo が手になじまない。ので、 Emacs と同じように操作できるような Lisp を書いてみました。


;;; emacs like undo and redo (low-functioning version ^^;)
(defvar *toggle-undo* nil)
(defun emacs-like-undo ()
"undo test"
(interactive)
(if (eq *toggle-undo* 'nil)
(setq *toggle-undo* 'undo)
(if (eq *toggle-undo* 'undo)
(if (eq *last-command* 'quit)
(progn (setq *toggle-undo* 'redo) (redo)) ; toggle by C-g
(progn (setq *toggle-undo* 'undo) (undo)))
(if (eq *last-command* 'quit) ; *toggle-undo* == 'redo
(progn (setq *toggle-undo* 'undo) (undo))
(progn (setq *toggle-undo* 'redo) (redo))))))
(global-set-key #\C-/ 'emacs-like-undo)


.xyzzy ないし siteinit.l に追記して xyzzy を再起動すると、 C-/ が Emacs っぽい undo/redo になります。キーバインドが C-/ なのは Meadow に合わせたからです。お好みで変えましょう。 Emacs の場合は、確か「バッファを編集しない関数が呼ばれると undo/redo が切り替わる」ような挙動だったんですが、これはそれよりずっと低機能で、 C-g を押したときのみ undo/redo を切り替えています。もっと Emacs の挙動に近づけたいと思っていますが、それは今後の課題ということで。 xyzzy と同じライセンスです。ライセンス明記するようなモノでもないけど・・・(苦笑

kyanny.dyndns.org のウェブサーバについて


kyanny.dyndns.org つまりこのサーバについてのメモ。 2006/02/14 時点。あ、そういえば今日はバレンタインデーですね。会社の女性陣から男性陣全員にチョコレートをもらいました。ありがとうございます!


  • Apache-1.3.34 + mod_perl-1.29

  • mod_perl はコンパイル時に静的にリンクさせている

  • mod_rewrite を使って http://kyanny.dyndns.org/ を http://kyanny.dyndns.org/blog/ へリダイレクトさせている。パターン [R,L] とかのやり方を知らなくてちょっとはまった。 mod_rewrite もコンパイル時に組み込む。

  • 両方をコンパイル時に組み込むためのコンパイルオプションはこんな感じに。 mod_perl のインストールガイドを参考にした。


    % perl Makefile.PL DO_HTTPD=1 USE_APACI=1 APACHE_PREFIX=/usr/local/apache EVERYTHING=1 APACI_ARGS='--enable-module=rewrite'

First post


Hello, Movable Type!
This is my first post.
記事検索
プロフィール

刺身☆ブーメラン

訪問者数
  • 今日:
  • 昨日:
  • 累計:

リラックマ時計
  • ライブドアブログ