基本的には下記サイトでやっている事と同じ。
参考: http://blog.symfony.jp/2007/08/13/emacs-etags/
ただ、php の関数定義取得部分が省かれてたので補足したのと、cron で回すため symfony の project が複数個あっても大丈夫なようちょっと加筆。
cd /usr/local/src cvs -d :pserver:cvsread@cvs.php.net:/repository checkout phpdoc/en/reference cd phpdoc/en/refernce wget http://ww1.netzologie.de/php/dateien/phpetags chmod +x phpetags sudo aptitude install xsltproc ./phpetags mkdir -p ~/usr/share/php/etags mv phpetags.php ~/usr/share/php/etags/
参考: http://ww1.netzologie.de/php/phpeditor-emacs.php
mkdir -p ~/usr/sbin/ emacs ~/usr/sbin/etags.sh chmod +x ~/usr/sbin/etags.sh
etags.sh の中身は下記の通り。
#!/bin/sh if [ -z $1 ];then echo "Usage: $0 fullpath of TAGS" exit fi for tag in $* do dir=`dirname $tag` cd $dir && etags `find . -name "*.php"` $tag find /usr/share/php -name "*.php" | xargs etags --append $tag etags --append $HOME/usr/share/php/etags/phpetags.php $tag done
~/usr/sbin/etags.sh /path/to/TAGS
で、TAGS が出来てればおk。
鋭い人は気付くかもしれないけど、/usr/share/php からゴッソリ etags かけてるので PEAR とか他のライブラリも作られてるハズです![]()
| M-. | 関数にジャンプ |
| C-. | ミニバッファに関数の引数表示 |
| M-TAB | 関数名補完 |
なぜか C-. が上手く動かなかったので C-c C-a に変更。
(define-key php-mode-map [(control c)(control a)] 'php-show-arglist)
0 4 * * * etags.sh /path/to/TAGS /path/to/TAGS