2011年2月2日(Wed)
■Emacsのlatex-modeでC-cキーを別の機能に割り当てる(add-hookの利用)
Macで秀丸エディタが使えないので、Emacsのキー割り当てを全面的に自分用に変更しています。
ところが、latex-modeになったとたん、C-cがLaTeXの処理などに割り当てられてしまいます。さあ困った。私はC-cを別の機能で使いたい。
そこで、latex-modeになったときに改めて自分用にキー割り当てし直すようにしました。
以下のコードを~/.emacs.d/init.elに書いておきます。
(defun reassign-tex-mode-keymap() (define-key latex-mode-map (kbd "C-c") 'end-of-buffer)) (add-hook 'tex-mode-load-hook 'reassign-tex-mode-keymap)
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のあたりを調べました。
- 13 http://sds.vitaasuite.jp/viewer/view/http:/d.hatena.ne.jp/hyuki/20110202/p1
- 6 http://reader.livedoor.com/reader/
- 6 http://www.google.co.jp/reader/view/?tab=my
- 5 http://www.google.co.jp/
- 5 http://www.google.co.jp/reader/view/
- 4 http://ezsch.ezweb.ne.jp/search/?query=Emacs LaTeX&start-index=6&adpage=3&ct=1301&sr=0103&t=20110806015604&filter=1
- 4 http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=emacs+c-c
- 4 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=emacs+platex+C-c
- 3 http://practical-scheme.net/wiliki/rssmix.cgi
- 3 http://www.google.co.jp/reader/view/?hl=ja




