CentOSでctagsを使おうとしたら、「E257: cstag: tag not found」って言われた。
/etc/vimrcを見たら、cscopeがあったらcscopeを使う設定になっていた。
cscopeはctagsの設定を上書きするらしい。
ctagsと同じようにタグジャンプ機能を生成するものだが、例えば、「この関数を使用してる場所」とかを知ることができる。
$ cscope file1 file2 ...
これでcscope.outが生成される。これが辞書。
あるディレクトリ配下のファイルに対して作りたい場合は、まずインデックスファイルを作成。
$ find . -name \*.php > cscope.files
そして、cscopeに食わせる。
$ cscope
cscope.filesはcscopeが読み出すデフォルトのファイル名。変更するには-iオプションを使う。
$ cscope -i cscope.index
辞書ファイル作成後、対話型シェルが起動したままになる。終わるにはCtrl-D。
というか最初から起動しなければいい。相互参照作成だけするオプションは-b。
$ cscope -b
vimから使う場合には、set cscopetagしてやればよい。これでC-]やC-tがcscopeを使うようになる。.vimrcに書いておこう。
そしてどの辞書に繋げるかを指定してやる。vimから
:cs add cscope.out
としてやる。今、どの辞書につないでいるかは
:cs show
で確認できる。
:cs findのオプションがどれがどれだかわからなくなるが、:cs helpしてやればわかる。
$ locate cscope.out $
誰も使ってないのかな?