関数定義へジャンプする etags

Programming in Emacs Lisp: Buffer Walk Throughでその存在を知り、
http://www.bookshelf.jp/soft/meadow_42.html#SEC622を見て導入した。


etagsを使いたいがためにcygwinを入れたのに、
なぜかetagsがうまく動いてくれないのでしばし当惑・・・。
そして少ししてから気付く。
C:\Meadow\binの中にもetags.exeがあることに。。
ま、まさか・・・cygwinを入れた意味はなかったというのか・・・。
そりゃあないよママン。


さっそくPATHにC:\Meadow\binを追加して、
eshellでsite-lispに飛び、etags *.elを実行してみた。
すんなりとTAGSができた。
cygwinの導入にかかった時間が無駄になったようでむなしくなる。
いやいや。cygwinはetags以外にも色々便利だって。
そう自分に言い聞かてむなしさを緩和。
それにむなしがってても過ぎた時間は返ってはこない。
気を取り直して、javascript.elを開き、M-.を試してみる。
関数定義まで一発ジャンプできることを確認する。
うんこれは便利ですね(・∀・)


また、TAGSを自動的に作成してくれるように以下を.emacsに追加した。

;;; TAGS の自動作成
;; M-.(M-x find-tag)で関数定義へジャンプ
(defadvice find-tag (before c-tag-file activate)
  "Automatically create tags file."
  (let ((tag-file (concat default-directory "TAGS")))
    (unless (file-exists-p tag-file)
      (shell-command "etags *.[ch] *.el .*.el -o TAGS 2>/dev/null"))
    (visit-tags-table tag-file)))