このエントリーをはてなブックマークに追加

概要

helm-gtags.elは GNU globalの helmインタフェースです.

helm-gtags.elanything-gtags.elと互換性はありませんが, より高速に動作するように設計されています.

anything-gtags.elgtags.elの出力結果を加工した上で anythingインタフェースを 提供するため, Linuxカーネル, Android等の非常に大規模なソースツリー下で利用した場合, 表示までに時間を要することがあります. helm-gtags.elgtags.elを利用せず, 自前で GNU globalの結果を処理する分処理が高速化されます.

GNU Globalに関する説明はこちらを参照してください

スクリーンショット

helm-gtags

必要要件

  • Emacs 23以降
  • helm 1.0以降
  • GNU Global 5.7.1以降

GNU Globalは 5.9で高速化が行われているので, 5.9以降の利用を推奨します.

各種コマンド

helm-gtags-mode

helm-gtags-modeを有効にする

helm-gtags-find-tag

入力されたタグの定義元へジャンプ

helm-gtags-find-rtag

入力タグを参照する場所へジャンプ

helm-gtags-find-symbol

入力したシンボルを参照する場所へジャンプ

helm-gtags-find-files

入力したファイルを開く

helm-gtags-select

タグ一覧からタグを選択し, その定義元にジャンプする(複数アクションあり)

helm-gtags-pop-stack

ジャンプ前の場所に戻る

helm-gtags-clear-stack

ジャンプ元を保存しているスタックをクリアする

カスタマイズ

helm-gtags-path-style

候補を表示する際の表示形式. 以下の中から選択する(デフォルトは 'root)

  • 'root(タグファイルがあるディレクトリを頂点としたパス)
  • 'absolete(絶対パス)
  • 'relative(カレントディレクトリからの相対パス)

helm-gtags-ignore-case

タグから検索を行う際, 大文字小文字を無視する(デフォルトは nil)

helm-gtags-read-only

タグ検索で選択したファイルを read-onlyで開く

設定例

(require 'helm-config)
(require 'helm-gtags)

(add-hook 'c-mode-hook 'helm-gtags-mode)

;; key bindings
(add-hook 'helm-gtags-mode-hook
          '(lambda ()
              (local-set-key (kbd "M-t") 'helm-gtags-find-tag)
              (local-set-key (kbd "M-r") 'helm-gtags-find-rtag)
              (local-set-key (kbd "M-s") 'helm-gtags-find-symbol)
              (local-set-key (kbd "C-t") 'helm-gtags-pop-stack)))