vz.el for xemacs21

2002/03/11 松田陽一 [yoh] (matsuda@palnet.or.jp)
2005/08/31 松田陽一 [yoh] (yoh@flcl.org)

1. はじめに

 vz.el とは、 1995年に古江秀之さんが作成された Mule 19.* 向けの emacs lisp パッケージです。
 Mule のキーアサインを MS-DOS 向けテキストエディタ "Vz Editor" 風にカスタマイズするメジャーモードを提供します。
 この vz.el を、 emacs20 でも *それなりに* 使えるように改変を試みたものから、更に、 xemacs21 でも *それなりに* 使えるように改変を試みています。
 バージョンナンバーを付けたりパッケージ名を変更する程の事でもありませんので、取り敢えず「vz.el for xemacs21」としておきます。
 diff を取ったりするのが面倒ですので、「スナップショット」の形で公開します。

 なお、現状では、一部のキー操作において emacs20 / emacs21 と比べて実用に耐えるレベルに至っていません。
 しかしながら、ディストリビューションによっては emacs21 における emcws パッチの適用が困難な場合があり、日本語文章作成に限定すれば、本マクロによる xemacs21 の文章入力は emacs21 よりも快適とも言えなくもありません。
 そこで、未完成を承知の上で、作業の進捗を記す意味も込めて公開します。あしからず御了承ください。

2. 特徴

xemacs の機能と恩恵を Vz のキーアサインで実現できる
例えば、 tramp を利用して、 scp 経由でリモートサイトのファイルの編集を Vz のキーアサインで編集できます。文字コードや改行コードの違うファイル間の編集が Vz の操作体系でできます。また、 Mew の文章作成にも適用できます。 ~/.emacs 等で (setq default-major-mode 'vz-mode) とすれば、気分は概ね Vz 。((setq default-major-mode 'vz-mode) は動作しません。)
xemacs の機能と恩恵を Vz の機能で利用できる
例えば、文字コードや改行コードの違いを吸収した状態で、C-k x のファイル比較ができます。

 Vz の操作に習熟している人、タッチタイプで Vz の操作ができる人にはお薦めできるパッケージだと思います。
 逆に、 Vz を知らない、使ったことがない、或は使ったけどそれほど習熟していない、という人にはお薦めできません。
 xemacs をノーマルな状態で使い慣れることを強くお薦めします。

3. オリジナル版からの変更点

(1) vz-menu を動作するようにした。
(2) vz-block-mode をなんとか動作するようにした。
(3) vz-compare-window の不具合を解消(vz.el for emacs20 より)
(4) vz-query-replace の不具合を解消
(5) vz-toggle-zenhan の文字マッチングの不具合を一部解消
(6) vz-toggle-zenhan において 1byte カタカナへの変換を禁止
(7) モードラインでバッファのコーディングが表示されない不具合を解消
(8) ESC-o 等のファイル名入力で Vz のキーアサインが無効になる不具合を解消

4. 制限

 xemacs 用です。
 手元では xemacs21 でしか動作確認をとっていません。
 通常の emacs のキーバインディングとはおよそかけ離れたキーアサインですので、実質的にかんなしか使えないと思って差し支えないでしょう。
 要するに、 -dl-canna 等の、かんなクライアント機能を内部に持つ emacs でないと、日本語入力でキーがバッティングします。
 例えば、 yc.el (http://www.ceres.dti.ne.jp/~knak/yc.html) や、たまご4 (egg4: http://www.m17n.org/tamago/ ) とは共存できません。
(2004.03.26追記: yc.el のキーアサインを書き換える試みを行っています。一部不具合がありますが、それなりに動作します。vz.el との親和性も概ね良好です。)

 emacs20 以降には対応していません。別パッケージで提供しています。
 Mule2.3(emacs19)には対応していません。オリジナルをどうぞ。

5. 使い方

 オリジナルのパッケージにある readme と emacs.add を参照して下さい。

 xemacs では、この他に

(load-library "mule-caesar")

が、 vz.el を読み込ませる前において必要となります。
 ~/.xemacs/init.el 等に記入して下さい。

6. 既知のバグ

(1) ブロックモードでハイライト表示しない (C-b vz-block-mode)。

(2) (setq default-major-mode 'vz-mode) が使えない。

(3) モードラインのカーソルインジケータが動かない。

(4) 全角記号の半角変換が中途半端 (C-k z vz-toggle-zenhan)

    1234abcd -> 1234abcd -> 1234abcd ◎
    !"#$1234 -> !″#$1234 △
    !″#$1234 -> !"#$1234 △
  

(5) タグジャンプ (vz-find-tag) は動作しない。

(6) make-frame にてマルチウィンドウにすると vz-compare-windows が正常に動作しない。(仕様とも言える、恐らく対応は無理?)

(7) tramp では [ESC]-s コマンドによるファイルセーブ (vz-save-file) はエラーになる。 M-x save-buffer としなければならない。

(8) C-k t コマンドによるファイルメニュー (vz-buffer-menu) は、10個を越えるバッファを選ぶことができない。 vz-mode 以外のメジャーモードに設定されているバッファを選んで、そこから C-x C-b (list-buffers) を実行する必要がある。

(9) C-l による検索文字列の連続取得 (vz-get-search-string) では、最初の検索文字列を失うことがある。

 他にも沢山あります。気がついたらその都度列挙します。

7. 謝辞

 オリジナル作者の古江秀之さん、パッチ作者の藤井勝親さんに感謝します。
 このパッケージなくして今の私はありません。

8. その他

 著作権はオリジナルに準じます。
 バグ報告は受け入れますが、実力が伴わないので対応は困難です。
 パッチは大歓迎です。
 お手元で使っているパッチ等ありましたら、是非筆者にお寄せ下さいますようお願いします。