Emacsでタグジャンプできるようにする

インストールなど

  • GLOBALというのが必要
  • GLOBALの対応言語を増やすのにPygmentsというのが必要
  • macなら以下で済む
$ brew install global --with-exuberant-ctags --with-pygments
$ export GTAGSLABEL=pygments

任意の場所でgtag実行

/usr/local/var/www/htdocs $ gtags

確認

  • 例えばcreateDatの定義箇所
/usr/local/var/www/htdocs $ global -ax -t createDat
createDat	/usr/local/var/www/htdocs/typing.js	43
  • 例えばcreateDatを使っている箇所
/usr/local/var/www/htdocs $ global -ax -r createDat
createDat         104 /usr/local/var/www/htdocs/typing.js     createDat();

できてるようだ

Emacs側

  • helm-gtagsパッケージ のインストール
  • init.elに追記
;;Emacsからgtagsを使えるようにする
;; customize
(custom-set-variables
 '(helm-gtags-path-style 'relative)
 '(helm-gtags-ignore-case t)
 '(helm-gtags-auto-update t))
;; key bindings
(eval-after-load "helm-gtags"
  '(progn
     (define-key helm-gtags-mode-map (kbd "M-t") 'helm-gtags-find-tag)
     (define-key helm-gtags-mode-map (kbd "M-r") 'helm-gtags-find-rtag)
     (define-key helm-gtags-mode-map (kbd "M-s") 'helm-gtags-find-symbol)
     (define-key helm-gtags-mode-map (kbd "C-c <") 'helm-gtags-previous-history)
     (define-key helm-gtags-mode-map (kbd "C-c >") 'helm-gtags-next-history)
     (define-key helm-gtags-mode-map (kbd "M-,") 'helm-gtags-pop-stack)))

使う時

  • ファイルを開く
  • M-x helm-gtags-modeする
  • 関数などにカーソルを合わせる
  • M-tやM-rで
Find Reference: (default "なんとかかんとか")

と聞かれるのでEnterするとジャンプする