Sublime Text 2とCtagsの組み合わせがすごい。開発スピードUP[Mac版]

by codechord. 0 Comments

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

Sublime Text 2では、Ctagsプラグインを使うことによって、コードナビゲーション(Class/Functionが定義されてるところへジャンプ)できるようになります。
これ、僕のベスト10には入ってくる、お気に入りプラグインです。

コーディング中にふとClassやFunctionの動作を知りたくなった時にいちいちFunction名をサイト内検索したり、ドキュメントサイトを開いて探さなくても、キーバインドで瞬時にそのClass/Functionが定義されてるところへジャンプして確認できると。
(こういった機能のこと、コードナビゲーションとかコードナビゲートと呼ばれているようだ。NetbeansやEclipseなんかでは標準でついてる機能なのかな。Sublime Text 2では標準で付いていない。)
WordPressのテーマ、プラグイン開発などの小中規模の開発や、その他CMSやフレームワークを利用する際、ドキュメントを見るより、コードを見たほうが早く解決できることも多いので、効率的に開発できるようになります。

と、文章で記述しても伝わりにくいので、英語ですが動画見てもらった方がイメージをつかみやすいかなと。(4:10~6:00ぐらいまで)

次の上2つについては以前紹介しましたが、加えてコードナビゲーション機能があると、軽量で高機能のエディタへと進化します。

  1. FTPが使え、保存と同時にアップロードもできる。
  2. Sass/SCSSのコンパイルが簡単。
  3. コードナビゲーションが使える。(←これ)

プラグインは以前からインストールしてマニュアル通り設定していたものの、どうもSublime Text 2からCtagsをリビルドできない状態でして、Terminalから.Ctagsファイルを作っていたのですが、エディタ設定を見なおしたらすんなりSublime Text 2からCtagsをリビルドできるようになりましたので、共有したいとおもいます。(Macでの手順です)

手順

  1. Homebrewインストール(homebrewを使ったことがない人のみ)
  2. ctagsをhomebrewでMacにインストール
  3. SublimeText2のプラグイン「Ctags」パッケージをインストール
  4. Ctagsプラグインの設定
  5. ctag生成、動作確認

1.Homebrewインストール(Homebrewを使ったことがない人のみ)

CtagsをMacにインストールするために、Homebrewをインストールする必要があります。
Homebrewのインストール方法についてはこの記事では触れません。こちらが参考になります。

2.ctagsをHomebrewでMacにインストール

Macの標準でCtagsがインストールされているが、動作しないため、Homebrewで最新版のCtagsをインストールする必要があるとのこと。ターミナルで以下を実行。簡単。

$ brew install ctags

3.SublimeText2のプラグイン「Ctags」パッケージをインストール

SublimeText2を立ち上げて、パッケージ「Ctags」をインストール。
ここも簡単。説明不要ですね。

4.Ctagsプラグインの設定

自分の場合、このステップがうまく行かず、動作しない状況でした。

動作しなかった理由

Sublime Text 2のctagsパッケージのインストールマニュアルに、以下の記述がありました。

If ‘which ctags’ doesn’t point at ctags in ‘/usr/local/bin’, make sure you add ‘/usr/local/bin’ to your PATH ahead of the folder ‘which ctags’ reported.

ターミナル等でctagsを打った時に、「/usr/local/bin/ctags」が実行されるように、マシンの設定を変えてねってことですが.bash_profileや.bashrcの設定を書き換えてみました。

設定前
$ which ctags
/usr/bin/ctags

設定後
$ which ctags
/usr/local/bin/ctags

上記のようになりましたが、私の環境ではこれでは動作しませんでした。

パッケージ設定ファイルを書き換える

結局のところ、CTags.sublime-settingsを設定のcommandを直接「/usr/local/bin/ctags」指定することでリビルドできるようになりました。

まずは、Defaultのセッテイングファイル
「(メニューバー)Sublime Text 2 -> Preferences -> Package Setting -> Ctags -> Setting – Default」
をUser用のセッティングファイルに丸々コピーします。
「(メニューバー)Sublime Text 2 -> Preferences -> Package Setting -> Ctags -> Setting – User」

その後、「Setting – User」のファイルの一部を下記のように変更します。

// "command"   :  "ctags -R -f .tags",
"command"   :  "/usr/local/bin/ctags -R -f .tags",

これだけです。
私の場合、PHPで動作させたく、特にDrupal開発を行なっていたので、自分は以下のように修正してますが、この設定は開発中のプロジェクトの言語や構成の次第で随時、引数を変更するって感じですね。

// "command"   :  "ctags -R -f .tags",
"command" : "/usr/local/bin/ctags --langmap=php:.engine.inc.module.theme.install.php --php-kinds=cdfi --languages=php -R -f .tags",

せっかくですので、引数の説明を残しておきます。

オプション 説明
-R
もしくは
–recurse=yes
ディレクトリ内を再帰的に処理する
-f <ファイル名> タグのインデックスファイルの出力先。
通常は、.tags
–languages=<言語> 対応させたい言語
–langmap=<言語:.拡張子> 対応させたい言語の拡張子のリスト
–<言語>-kinds=<オプション>
【例】
–php-kinds=cdfi
オプション:タグ付けしたい項目

    c : classes
    d : constant definitions
    f : functions
    i : interfaces
    v : variables
    j : javascript functions

次の表にありますが
/usr/local/bin/ctags –list-kinds
を見れば、このオプションの意味がなんとなくわかるかなと。

Ctagsのデフォルトの状態を調べることのできる便利なコマンドを記載しておきます。

コマンド 結果(*PHP近辺のみのピックアップしてます)
$ /usr/local/bin/ctags –list-languages
対応言語の一覧を表示
...
Perl
PHP
Python
REXX
Ruby
...
/usr/local/bin/ctags –list-maps
対応拡張子を一覧表示
...
Perl     *.pl *.pm *.plx *.perl
PHP      *.php *.php3 *.phtml
Python   *.py *.pyx *.pxd *.pxi *.scons
REXX     *.cmd *.rexx *.rx
Ruby     *.rb *.ruby
...
/usr/local/bin/ctags –list-kinds
タグ付けされる要素を表示
...
PHP
    c  classes
    i  interfaces
    d  constant definitions
    f  functions
    v  variables
    v  variables
    j  javascript functions
    j  javascript functions
    j  javascript functions
...

5.動作確認

ここまでの設定が終わりましたら、SublimeText2を再起動し、SublimeText2で管理されている開発中のプロジェクト(wordpress等)を開きます。(マシンの再起動も必要かもしれません)
「[Cmd]+T [Cmd]+R」で実行!
「.tags」と「.tags_sorted_by_file」というファイルがプロジェクトディレクトリに生成されれば成功です。

ctags

あとは、先に紹介した動画の通りです。任意のファイルを開き、調べたいFunctionやClass名にカーソルを持って行きキーバインド実行。
「[Cmd]+T [Cmd]+T」でジャンプ!

ジャンプしましたか?便利ですね。開発スピードが格段に上がると思います。
Sublime Text 2のベスト10には入るお気に入りプラグインです。是非試してみてください。

参考にしたサイト


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA