古典的な C ソースだと GLOBAL (gtags, htags) を使った方がシンプルで気に入っている。 何より Windows 版の gtags, htags はコケル場合があって、肝心のタグジャンプが使えなかったりする。なので Linux へソースを持って行き(Windows ソースだと UTF-8 へ変換したりして)、タグファイル作成している。
詳しく書かれてあるサイトはあるけど、覚書きしておくと、
http://www.gnu.org/software/global/global.html から global-x.x.x.tar.gz をダウンロード。
今回は 5.7.7 を使用した。
tar zxvf global-x.x.x.tar.gz で展開。
cd global-x.x.x で ./configure する。--prefix= で場所指定出来る?
make
make install
マニュアルは?
使うにはソースのカレントで..
$ gtags -v
$ htags -saFn --tabs 4 -t 'hoge'
すると[HTML]ってサブディレクトリが出来て、その中の index.html を開けばおk。
(2013-8-26) 日付が入るよう次のスクリプトを起動・作成し、エディタ代わりに頻繁に参照している。ちょっと推敲を兼ねてコードを眺めるのに良い。
#!/bin/sh
gtags -v
TITLE="`date`"
htags -sn --tabs 4 -t "xxxx 1.0.0 - ${TITLE}"
なお、既に HTML なんかが出来上がっていても新しい index.html は正しくリンクしたものになるが、それだと開いていたブラウザのURLも変わる事が多く、宜しくない。やっぱり rm -fr HTML/ を噛ませた方が心地良さそうだ。
(2012-9-12) デフォでは(C++の場合) .inl ファイルを無視されるので調べると、1つの手段として gtags.conf
の langmap= へ追記すれば良いようだ。
参考: http://caspar.hazymoon.jp/unix/global.html
/usr/local/share/gtags.conf を /etc/gtags.conf へコピーし、langmap= へ追加した。
#---------------------------------------------------------------------
# Configuration for gtags(1)
# See gtags(1).
#---------------------------------------------------------------------
common:\
:skip=GPATH,GTAGS,GRTAGS,GSYMS,HTML/,HTML.pub/,html/,tags,TAGS,ID,y.tab.c,y.tab.h,.notfunction,cscope.out,cscope.po.out,cscope.in.out,.gdbinit,SCCS/
,RCS/,CVS/,CVSROOT/,{arch}/,.svn/,.git/,.cvsrc,.cvsignore,.gitignore,.cvspass,.cvswrappers,.deps/,autom4te.cache/,.snprj/:\
:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.cpp.cxx.hxx.hpp.inl.C.H,php\:.php.php3.phtml:
(2013-8-26) Ubuntu 9.? でやろうとすると gtags.conf テンプレートの位置が違っていた。
$ locate gtags.conf /usr/share/doc/global/examples/gtags.conf
/etc/gtags/ ディレクトリも存在するが、そこではなく、/etc/gtags.conf へ置くのが正しいと思われる。
(2015-5-8) --tabs オプションは古い物には無いようだ。
htags: unrecognized option `--tabs'
Vine Linux 4.2 : Synaptic で入れた global 5.2。
langmap は同じ要領で変更しておく:
$ sudo cp /usr/share/gtags/gtags.conf /etc/
$ sudo vi /etc/gtags.conf
簡単だけど綺麗に見せるには [Expert] で詳細設定しないといけない。それにしてもオプション多い...
Project (1/2) 1. DOXYFILE_ENCODING 2. PROJECT_NAME 3, PROJECT_NUMBER 4. OUTPUT_DEIRECTORY 5. □CREATE_SUBDIRS 6. OUTPUT_language [ |▼] |
Project (2/2) TAB_SIZE はソースのタブに合わせる?だったか... |
Build |
Messages |
Input(1/2) |
Input(2/2) |
Source Browser 多分、ここの USE_HTAGS を活かすとコケたと思う。 |
Index ABC なんかの早引きインデックス |
HTML これ大事 |
Preproccessor |
External |
Dot |
Search |