悲しいときーーー!!
悲しいときーーー!!
ゴキゲンな lisp を入れて global-set-key
を設定したら、特定のモードのときにその mode-map にキーが取られてしまったときーーー!!
そのような場合に以下のように対処してみました。
もっとよい方法があったらお教え下さい。
追記
syohex さんにコメントで「上書きされない用のマイナーモードを作る方法」を教えていただきました。→ http://d.hatena.ne.jp/rubikitch/20101126/keymap
ゴキゲンな lisp を入れたらキーバインド衝突
ゴキゲンな lisp の例として、expand-region
をご紹介します。(「自分が入れたEmacs便利拡張・設定集 (2013年版) - $shibayu36->blog;」で学びました。わしのようなレイトマジョリティにはたまらない、よだれ記事です。ありがとうございました。)
設定
(require 'expand-region)
(global-set-key (kbd "C-,") 'er/expand-region)
よし! C-,
ッターン!!! うお〜〜いいねいいね〜〜!!
と思った矢先……
モードマップと衝突
そしたら org-mode で C-,
が org-cycle-agenda-files
に割り当てられていたので見事に衝突ですよ。 birthday.org が開かれてしまいましたよww 一つも誕生日など書かれていない無意味なファイルですよwwww
衝突を解消する
この例では、org モードがロードされたら org-mode-map の C-,
を nil にして割り当てを解除しました。
;;
;; Disabling key bindings
;;
(eval-after-load "org"
'(progn
(define-key org-mode-map (kbd "C-,") nil)
))
終わりに
この方法では衝突するモードが見つかるたびにそれぞれ解除しないといけません。
もっといい方法があるのでしたら是非とも教えていただきたく存じます。
大事なことなのでもう一度追記
syohex さんにコメントで「上書きされない用のマイナーモードを作る方法」を教えていただきました。→ http://d.hatena.ne.jp/rubikitch/20101126/keymap