Macで秀丸エディタが使えないので、Emacsのキー割り当てを全面的に自分用に変更しています。
ところが、latex-modeになったとたん、C-cがLaTeXの処理などに割り当てられてしまいます。さあ困った。私はC-cを別の機能で使いたい。
そこで、latex-modeになったときに改めて自分用にキー割り当てし直すようにしました。
以下のコードを~/.emacs.d/init.el
に書いておきます。
defun reassign-tex-mode-keymap()
("C-c") 'end-of-buffer))
(define-key latex-mode-map (kbd 'tex-mode-load-hook 'reassign-tex-mode-keymap) (add-hook
tex-mode(含latex-mode)の初期化が終わった最終段階で、tex-mode-load-hookに登録されているフック関数が呼び出されます。そこで関数add-hookを使って自前のreassign-tex-mode-keymapという関数を登録しておくという仕組みです。
呼び出される関数reassign-tex-mode-keymapでは、latex-mode-mapというtex-modeの中で使われているキーマップに自分用のキー割り当てを設定しています。
ここでは、C-cキーをend-of-buffer(バッファの最後に移動)に割り当てています。
ちなみに以上の情報はどうやって得たかというと、Emacs Lispのtex-mode.elを読み、GNU Emacsのマニュアルでadd-hookのあたりを調べました。