syohexさんのEmacs Advent Calendar 2012 "Emacsを使いこなすために" を読
んで自分も書きたい、という思いがふつふつとわいてきたので ひとり勝手に
Emacs Advent Calendarを続けてみます。
elispをevalしまくろう
evalしたいelispをregion選択して M-x eval-region しまくりましょう。
よく設定fileにはremap設定やmode設定を書くと思います。
これらはEmacsをrestartするのではなくevalを使ってinteractiveに設定を反
映させましょう。
たとえば
(global-set-key (kbd "C-h") 'delete-backward-char)
(scroll-bar-mode 0)
といったものをregion選択しM-x eval-regionしてみましょう。即座に設定が反映
されます。
設定の反映だけでなくvariableの内容把握にも役立ちます。例えばscratch
bufferで
ac-dictionary-directories
と入力した後で M-x eval-print-last-sexp と入力してみましょう。
("/Users/kozo2/.emacs.d/elpa/auto-complete-20121203.832/dict")
このようにauto-complete.elが用いている辞書があるdirectoryのpathがわか
ります。
helm-M-xしまくろう
実現したいことに関するkeywordをhelm-M-xの後にspace区切りで入力してみま
しょう。それらしきcommandがみつかるはずです。
helm-lisp-completion-at-pointしまくろう
このcommandを使うとelispの補完ができます。auto-complete.elも便利ですが
このhelm commandをおすすめするのは前述のようにspace区切りでの候補のしぼりこみが可
能なためです。elispのcommand名などは長いことが多いのに加え、keywordがelispの
variableなりcommandなりの中で離れて存在していてもよいので便利かと思います。
しぼりこみ結果がvariableかcommandかfunctionかも表示してくれます。
package-list-packagesしまくろう
installやuninstallが簡単にできるだけでなくupdateも可能なので使いまくりましょ
う。
command (or function) をedebugしまくろう
よりくわしくEmacsの機能(==Emacsのcommand or function)を知りたい場合
edebugでcommandなりfunctionのdebugをすることがおすすめです。
- 知りたいcommandをM-x describe-functionで調べる
- Help buffer にどのelisp中のfunctionか(そのelispへのlinkにもなっている)が表示されるので、ここからそのelispのcommand箇所へjump
- M-x edebug-defun で知りたいcommandにbreak pointをしかける。
- M-x "知りたいcommand" でcommandを実行
- "知りたいcommand" のdebugができる
おわりに
上記のことを行うとEmacsはとてもinteractiveなものであることがわかると思
います。
ballは友達的な感じでどんどんEmacsに質問を投げてEmacsのことを知り、使い
こなしてください。