unoh.github.com

言語モード毎にキーボードマクロを設定する(Emacs)

Tue Aug 14 05:00:19 -0700 2007

こんばんは。bokkoです。

Emacsを使っている人に限らず、タイプ数を減らすために、
キーボードマクロを使っている人は多いと思います。
私の場合、for文やmain関数などをキーボードマクロで自動生成したりしているのですが、
最近、ほかの言語の構文と名前がかぶってしまったり、
RubyやPythonで書いているときは欲しいんだけど、
CやC++で書いているときは、全然いらないマクロがあったりするのが気になったので、
整理することにしました。
最初はマクロに言語の名前をつけて区別しようとしたのですが、
Emacsではadd-hookが使えるので、そっちを使って言語モード毎にマクロを設定することにしました。

(setq c_macros_dir "~bokko/emacs-macros/c/")
(add-hook 'c-mode-hook
          '(lambda ()
             (load-file (concat c_macros_dir "create_nested_block_main.macs"))
             (load-file (concat c_macros_dir "create_nested_block_for.macs"))
             (load-file (concat c_macros_dir "create_nested_block_while.macs"))
                                                        ・
                                                        ・
                                                        ・
             ))
(setq php_macros_dir "~bokko/emacs-macros/php/")
(add-hook 'php-mode-hook
          '(lambda ()
             (load-file (concat php_macros_dir "create_nested_block_func.macs"))
             (load-file (concat php_macros_dir "create_nested_block_class.macs"))
             (load-file (concat php_macros_dir "create_nested_block_foreach.macs"))
             (load-file (concat php_macros_dir "var_dump_exit.macs"))
                                                        ・
                                                        ・
                                                        ・
             ))


このように書くと、各言語モードだけに必要なキーボードマクロを設定することができますし、
別の言語に同じ名前のマクロがあっても大丈夫です。