PHPで GNU globalを使う
http://d.hatena.ne.jp/ikstrm/20121025/1351126600
上記のサイトでは gtagsは使いづらく、grep等の紹介をしています。
素の gtags.elを使うのであればそれでもいいかもしれないですが、
helmや anythingと組み合わせて使えば間違いなく grepよりも
良いと思います。そこで拙作の helm-gtags.elを導入から紹介します。
注意
私は PHPについては hello worldしか書いたことがないので
より良いリーディング方法があれば教えていただくか、
ブログで紹介いただけたらと思います。
package.elを使う
helm-gtags.elは MELPAに登録しているので package.elを使って
簡単にインストールすることができます。
以下を設定ファイル(~/.emacs.d/init.el, ~/.emacs等)に記述します。
;; インストール先を変えたい場合は package-user-dirを変更してください (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize)
次に以下を実行します。
M-x package-list-packages
ここから helm-gtagsを探し, その位置で "i"(install)を押します。
そして "x"を押し、インストールを行います。
PHP向けの設定
PHPモードも package.elでインストールできますので同様に
インストールしてください。
php-mode時に helm-gtags-modeを有効にするために以下を
設定ファイルに追加します。
(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))) (add-hook 'php-mode-hook 'helm-gtags-mode)
hookのキーバインドは私好みですので、ご自由にしてください。
関数、クラスの参照元の検索
シンボルの検索
シンボルを検索するコマンドに helm-gtags-find-symbolがあります。
画像は割愛
ジャンプ元に戻る
定義場所、参照場所にジャンプして、その後ジャンプ前の場所に
戻りたいということがあります。そのようなときには
helm-gtags-pop-stackコマンドを使います。
おまけ
grepについてもそのまま使うより、helmや anythingと組み合わせて
使うのがやはり強力です。ついでにいうと grepより ackが強力です。
ack(App::ack)のインストールは他にお任せするとして、helm
インタフェースで ackを使える拙作の helm-ack.elを紹介します。
リポジトリ
helm-ackは anything-ackと大きく異なることや、ackに関する
拡張に比べて機能がなさすぎるので MELPAの登録は保留中です。
下記から手動でインストールしてください
イメージ
デフォルトではカーソル下の単語を検索候補とすることや
現在開いているファイルに関連したファイルのみを検索する
オプションを自動で追加するようしています。
私がカーネルの開発を行う際は helm-gtags.elと helm-ack.elを
使い分けながら作業を行なっています。
おわりに
個人的にはEmacsに慣れていない人ほど helmとか anythingを
使って欲しいと思っています。操作も覚えるのも大事ですが、
初めから積極的に便利な機能を使う、それを使いこなすという
ことをしていくことでより体に馴染んでいくのではないかと
思います。