write ahead log

ロールフォワード用

ctagsを使ってみる[POSIXコマンド]

ソースコード解析補助ツール.
ぶっちゃけGNU Global使ったほうが良い気がする.

が,POSIXコマンドでviでも(Emacsも?)デフォルトでサポートしてることを考えると知っといて損はない気もする.

そんなわけで試してみる.

インストール

ubuntuだと入ってたけどね.

sudo apt-get install ctags

使う

前回に引き続きgitのファーストバージョンに実験台になってもらう.

どうでもいいんだけど,リーナスのコミットメッセージ中2臭くない?

プロジェクトディレクトリ直下に移動してctagsコマンドを実行する.

twinbird@:~/lab/git-e83c5163316f89bfbde7d9ab23ca2e25604af290$ ctags *

するとtagsファイルが生成される.

twinbird@:~/lab/git-e83c5163316f89bfbde7d9ab23ca2e25604af290$ ls
Makefile  cache.h     commit-tree.c  read-cache.c  show-diff.c  update-cache.c
README    cat-file.c  init-db.c      read-tree.c   **tags**         write-tree.c

ちなみにPOSIX準拠じゃなさそうだけど,-Rオプションをつけると再帰的に全てのディレクトリ下を対象にできるらしい.

vimから使う

vimなのは個人の趣味です.

操作 内容
C-] カーソル位置の単語をタグとみなしてジャンプ
C-t 直前のタグに戻る
g C-] 複数候補がある場合に選択→ジャンプ
C-w } カーソル位置の単語の定義を、プレビューウィンドウで開く
C-w C-z プレビューウィンドウを閉じる(:pcと同じ)

結構いい. Globalと違ってデフォルトでサポートってのはやっぱ魅力(割とデフォルト主義なので)