Hiroyuki Komatsu
komat****@taiya*****
2004年 1月 6日 (火) 02:42:31 JST
小松です。 At Mon, 05 Jan 2004 21:25:43 +0900 (JST), Konosuke Watanabe wrote: > Anthy-4901のanthy.elでは(でも)変換時に表示されるフェンスが > undoリストに入らないように > > anthy-enable-preedit-keymap > > 内で > > buffer-disable-undo > > を呼んでいるかと思うのですが,これだと日本語入力と半角英数直 > 接入力を切り替えるたびにundoリストを破棄してしまうようで,非 > 常に不便だったりします.できればundoリストがつながるようにし > ていただけないでしょうか. prime-el ではどのように実装しているかを説明させていただきます。 実装のヒントにしていただければうれしいです。 undo の記録は変数 buffer-undo-list に格納されていますので、この変数を いじってやれば undo を繋げることが可能です。 anthy-buffer-undo-list を buffer-undo-list を一時的に退避させるバッファローカル変数として使います。 準備: (defvar anthy-buffer-undo-list nil) (make-variable-buffer-local 'anthy-buffer-undo-list) anthy-mode ON 時: (setq anthy-buffer-undo-list buffer-undo-list) anthy-mode OFF 時: (setq buffer-undo-list anthy-buffer-undo-list) 変換文字列確定時: ;; beginning と end が確定文字列のリージョンを示す。 (setq anthy-buffer-undo-list (cons (cons beginning end) (cons nil anthy-buffer-undo-list))) -- 小松弘幸 ----------------------- http://taiyaki.org/