2002/03/24 松田陽一 [yoh] (matsuda@palnet.or.jp)
2004/03/26 松田陽一 [yoh] (yoh@flcl.org)
2005/08/24 松田陽一 [yoh] (yoh@flcl.org)
2005/08/30 松田陽一 [yoh] (yoh@flcl.org)
2005/09/15 松田陽一 [yoh] (yoh@flcl.org)
vz.el とは、 1995年に古江秀之さんが作成された Mule 19.* 向けの emacs lisp パッケージです。
Mule のキーアサインを MS-DOS 向けテキストエディタ "Vz Editor" 風にカスタマイズするメジャーモードを提供します。
この vz.el を、 emacs20 でも *それなりに* 使えるように改変を試みたものから、更に、 emacs21 でも *それなりに* 使えるように改変を試みています。
バージョンナンバーを付けたりパッケージ名を変更する程の事でもありませんので、取り敢えず「vz.el for emacs21」としておきます。
diff を取ったりするのが面倒ですので、「スナップショット」の形で公開します。
Vz の操作に習熟している人、タッチタイプで Vz の操作ができる人にはお薦めできるパッケージだと思います。
逆に、 Vz を知らない、使ったことがない、或は使ったけどそれほど習熟していない、という人にはお薦めできません。
emacs をノーマルな状態で使い慣れることを強くお薦めします。
(1) vz-compare-window の不具合を解消
(2) vz-query-replace の不具合を解消
(3) vz-toggle-zenhan の文字マッチングの不具合を一部解消
(4) vz-toggle-zenhan において 1byte カタカナへの変換を禁止
(5) モードラインでバッファのコーディングが表示されない不具合を解消
(6) emacs21 の vertical-motion のバグに基づく、カーソルが行頭にある状態で vz-next-line が正常動作しない不具合を、小松弘幸さん作の physical-line.el を借用して解消
(7) emacs20 以降と mule19.* 或は Meadow との char-category() の挙動の相違に基づく、 vz-forward-word と vz-backward-word の動きの不具合を一部(?)解消。
(8) vz-right-of-screen と vz-left-of-screen の動作不具合も 小松弘幸さん作の physical-line.el を借用して解消
emacs21 以降用に作っていますが、 emacs20 でも動くことは確認しています。(というか、現在使っています。)また、 Meadow でも動きます。(Meadow-2.10 (ASAGAO) based on Emacs-21.4 にて動作確認。)
但し、通常の emacs のキーバインディングとはおよそかけ離れたキーアサインですので、実質的にキーアサインが変更できる「かんな」しか使えないと思って差し支えないでしょう。
要するに、 -dl-canna 等の、かんなクライアント機能を内部に持つ emacs を使い、 ~/.canna でキーアサインを変更しないと、日本語入力でキーがバッティングします。
例えば、 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 との親和性も概ね良好です。)
XEmacs は別に提供しています。但し、 emacs20 / emacs21 よりもバグは多いです。
Mule2.3(emacs19)には対応していません。オリジナルをどうぞ。
オリジナルのパッケージにある readme と emacs.add を参照して下さい。
emacs21 以降では、この他に
(load-library "mule-caesar")
(load-library "physical-line")
が、 vz.el を読み込ませる前に必要となります。
すなわち、 apel と physical-line.el が必要です。
.emacs 等に記入して下さい。
一部のキー操作と他の elisp パッケージとの相性が悪いことがあります。
少なくとも、 tramp では [ESC]-s コマンドによるファイルセーブ (vz-save-file) はエラーになります。
M-x save-buffer としなければなりません。
また、 dired モードは実質使えないと思って差し支えないでしょう。
(1) 全角記号の半角変換が中途半端 (C-k z vz-toggle-zenhan)
1234abcd -> 1234abcd -> 1234abcd ◎
!"#$1234 -> !″#$1234 △
!″#$1234 -> !"#$1234 △
(2) タグジャンプ (vz-find-tag) は動作しない。grep-mode のバッファを vz-mode にすると、 S-F10 のタグジャンプが利用可能。
(3) make-frame にてマルチウィンドウにすると vz-compare-windows が正常に動作しない。(仕様とも言える、恐らく対応は無理?)
(4) tramp では [ESC]-s コマンドによるファイルセーブ (vz-save-file) はエラーになる。 M-x save-buffer としなければならない。
(5) C-k t コマンドによるファイルメニュー (vz-buffer-menu) は、10個を越えるバッファを選ぶことができない。 vz-mode 以外のメジャーモードに設定されているバッファを選んで、そこから C-x C-b (list-buffers) を実行する必要がある。
(6) C-l による検索文字列の連続取得 (vz-get-search-string) では、直近の検索文字列を失うことがある。
(7) C-c (vz-scroll-up) の検索モードで、カーソルがマッチした単語の先頭ではなく行頭に位置することがある。
他にもあると思いますが、筆者が気が付く限りでは以上です。
オリジナル作者の古江秀之さん、パッチ作者の藤井勝親さんに感謝します。
このパッケージなくして今の私はありません。
また、今般の不具合解消にあたり、小松弘幸さんと小島肇さんに感謝します。
著作権はオリジナルに準じます。
バグ報告は受け入れますが、実力が伴わないので対応は困難です。
パッチは大歓迎です。
お手元で使っているパッチ等ありましたら、是非筆者にお寄せ下さいますようお願いします。
Eshell が Vz の Shift-ESC みたいに使えれば良いですねぇ…