はじめに

基本的には下記サイトでやっている事と同じ。
参考: http://blog.symfony.jp/2007/08/13/emacs-etags/

ただ、php の関数定義取得部分が省かれてたので補足したのと、cron で回すため symfony の project が複数個あっても大丈夫なようちょっと加筆。

やりかた

  • php のマニュアルから関数定義取得
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

  • TAGS 作成
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 とか他のライブラリも作られてるハズです:-)

  • etags 基本コマンド
M-.関数にジャンプ
C-.ミニバッファに関数の引数表示
M-TAB関数名補完


なぜか C-. が上手く動かなかったので C-c C-a に変更。

(define-key php-mode-map [(control c)(control a)] 'php-show-arglist)
  • cron 登録
0    4 *    * * etags.sh /path/to/TAGS /path/to/TAGS
symfony_の独自関数や_php_の標準関数をまとめて_etags.txt · Last modified: 2008/07/11 03:53 by topaz2