PHPまわり
開発用のサーバでPHPまわりの設定をしました。
まず
LAMPスタックを導入してもPHPのCLI環境や開発環境は入っていないので、インストールします。
そして/usr/lib/php5以下にPEAR,ZendFramework,Smarty,SimpleTestを設置します。
$ apt-get install php5-cli php5-dev
PEARの導入については以前の記事で書いたので特に書きません。
その他はどれもwgetで取得して展開するのみです。
PHPのinclude_pathには/usr/lib/php5と/usr/lib/php5/PEAR/PEARを指定しておきます。
$ cd /usr/lib/php5
// ZendFramework
$ sudo wget []http://framework.zend.com/releases/ZendFramework-1.7.8/ZendFramework-1.7.8-minimal.tar.gz[]
$ sudo tar zxvf ZendFramework-1.7.8-minimal.tar.gz
$ sudo mv ZendFramework-1.7.8-minimal/library/Zend ./
$ sudo rm -rf ZendFramework-1.7.8-minimal ZendFramework-1.7.8-minimal.tar.gz// Smarty
$ sudo wget []http://www.smarty.net/do_download.php?download_file=Smarty-2.6.19.tar.gz[]
$ sudo tar zxvf Smarty-2.6.19.tar.gz
$ sudo mv Smarty-2.6.19/libs/ ./Smarty
$ sudo rm -rf Smarty-2.6.19 Smarty-2.6.19.tar.gz// SimpleTest
$ sudo wget []http://nchc.dl.sourceforge.net/sourceforge/simpletest/simpletest_1.0.1.tar.gz[]
$ sudo tar zxvf simpletest_1.0.1.tar.gz
$ sudo rm -f simpletest_1.0.1.tar.gz
次にZendOptimizerとeAcceleratorをインストールします。
$ vim /etc/php5/apache2/php.ini(と /etc/php5/cli/php.ini)
// 487行目付近
include_path = ".:/usr/lib/php5:/usr/lib/php5/PEAR/PEAR"$
次にせっかくPHPの関数名が長いということもありvimに関数の補完を行うよう設定します。
これでPHPの関数がctrl + Pで補完されるようなりました。
// 関数辞書の生成
$ mkdir ~/.vim/dict
$ php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);' \ | sudo sort > ~/.vim/dict/php_functions.dic// vimへの登録
$ vim ~/.vimrc
// if has("autocmd")構文があればその前に記述する
autocmd FileType php :set dictionary+=~/.vim/dict/php_functions.dict
set complete+=k
※追記
VIMは
どうやら/usr/share/vim/vimXX/autoload(XXはバージョン)以下にあるファイルを元に補完されるようです。
開発サーバの環境ではPHP、Ruby、HTML、CSS、JavaScriptとかです。
C言語やPythonは文法のみ補完されて、関数が補完されないと思っていたら、
そのautoload/以下のファイルでC言語やPython用のものを見ても関数定義が書かれていませんでした。
ここら辺はプラグインとかで拡張できるんだと思います。今度また調べます。