2005年11月10日の日記の2番目の記事へのコメント

uim.elとviperの続き

コメントに書きましたが,やっぱminor-mode-map-alistでviperのキーマップがuim.elのキーマップより先に来てるのが問題でした.んで,プリエディット状態に入った際にuim-modeのキーマップ差し替えるついでに,他のマイナーモードをminor-mode-overriding-map-alistに全部登録してやったら無事backspaceでプリエディット削除できるようになりましたよ.しかもdiff-modeでもちゃんと日本語入力できるようになったし.

が,この変数,XEmacsにはないんですよねー.またか(;´Д`).そこで,代わりにプリエディット開始時にuim-mode以外のキーマップを全部潰して,プリエディットが消えてキーマップを通常時のものに戻す際に復帰させるようにしてやったところ,無事XEmacsのviperでもbackspaceが効くように.

ふー,これで終わりかな.と思ったら,Emacs-22でちゃんと動かねーし_|‾|○.キーマップを見ると明らかにuim-mode以外は全部空なのに,それでもbackspaceを別の何かが拾ってます.なんだよこれー・・・とソースを追ってみたら,emulation-mode-map-alistsなんてのが怪しい.試しにこれをnilに設定したら見事に使えるようになりました.うわー,なんだよコレ.

List of keymap alists to use for emulations modes. It is intended for modes or packages using multiple minor-mode keymaps. Each element is a keymap alist just like `minor-mode-map-alist', or a symbol with a variable binding which is a keymap alist, and it is used the same way. The "active" keymaps in each alist are used before `minor-mode-map-alist' and `minor-mode-overriding-map-alist'.

うわー・・・('A`).何か便利そうだけど未来Emacsでしか使えないなら今んとこ意味ないし (;´Д`).

ちなみに,EscapeキーがXで上げたときにちゃんと効いてないのは別問題でした.通常時のマップの方に[escape]はnilと設定してやると効くようにはなりましたが,これでいいんだっけっか・・・?

まあ,ひとまず,最初のminor-mode-overriding-map-alistを使ってどうにかするパッチはこちらです.GNU Emacs-21しか使わない方はこれで大丈夫だと思われます.

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2005年11月10日の日記の2番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2005年11月
    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      

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ