Vim で PHP 開発するためにやってる設定 3 つほど
どうもこんにちは、インフルエンザ明けの nakamura です。寝過ぎて腰痛めたっつーの。
以前は IDE 使ったりもしていましたが、ここ数年 PHP 書く際は Vim を使ってます。Vim に関してはまだまだ初心者から抜け出せてないんですが、PHP 用にやってる設定をいくつか紹介してみたいと思います。こんなのもやっとくと便利だよとかあれば教えて教えてー。
関数名とか補完
Vim には辞書ファイルを読み込んで補完に使える機能があります。ということで、とりあえず PHP 組み込みの関数や定数の辞書ファイルを作りましょう。
作り方は色々あると思いますが、僕はいつも以下のサイトのスクリプトを使わせてもらってます。
リンク先にも書かれてますが、dict.php をダウンロードしたら以下で組み込みのクラス名、関数名、定数名等の一覧が作れます。
php dict.php | sort > ~/.vim/dictionaries/php.dict
補完機能については neocomplecache というプラグインを使ってます。.vimrc の設定は以下のような感じ。
" set: dictionary= で辞書ファイルを指定 autocmd BufRead *.php\|*.ctp\|*.tpl :set dictionary=~/.vim/dictionaries/php.dict filetype=php NeoBundle 'Shougo/neocomplcache' let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_enable_camel_case_completion = 1 let g:neocomplcache_enable_underbar_completion = 1 let g:neocomplcache_smart_case = 1 let g:neocomplcache_min_syntax_length = 3 let g:neocomplcache_manual_completion_start_length = 0 let g:neocomplcache_caching_percent_in_statusline = 1 let g:neocomplcache_enable_skip_completion = 1 let g:neocomplcache_skip_input_time = '0.5'
プラグインの管理には neobundle.vim を使わせてもらってます。この辺り も参考にしてみてください。
こんな感じで一覧が表示されれば OK!
neocomplecache 使ってない人は Ctrl+x, Ctrl+k で補完候補の一覧を呼び出せますよ。
ファイル保存時にシンタックスチェックする
これも方法はいくつかありそうですが、僕は syntastic というプラグインを使っています。今の所 PHP にしか使ってないけど色んなファイルタイプで使えるみたいだし。処理としては内部的に php -l しているみたいです。
.vimrc はこんな感じにしてます。
NeoBundle 'scrooloose/syntastic' let g:syntastic_check_on_open = 1 let g:syntastic_enable_signs = 1 let g:syntastic_echo_current_error = 1 let g:syntastic_auto_loc_list = 2 let g:syntastic_enable_highlighting = 1 " なんでか分からないけど php コマンドのオプションを上書かないと動かなかった let g:syntastic_php_php_args = '-l' set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%*
ファイルを保存すると以下のようにエラー行にマークが表示されれば OK です。:Errors と打つとエラーメッセージが表示されます。
ブラウザリロードしたら PHP Parse error でイラっとする回数が減りました!
Vim で PHP のマニュアルを見れるように
vim-ref というプラグインを使うと Vim 上で PHP マニュアルを参照することが可能になります。Vim とブラウザの間を行ったり来たりしなくてよくて、とっても楽チン。
まずはマニュアルをダウンロード、展開します。以下ページからお好きな言語の『Many HTML files』をダウンロード、任意の場所に展開してください。僕は ~/.vim/refs 以下に展開しました。
lynx コマンドが必要らしいので入っていなければインストール。
sudo yum install lynx
ここまで来たら .vimrc に以下を書いて :NeoBundleInstall! すれば利用可能になります。
NeoBundle 'thinca/vim-ref' let g:ref_phpmanual_path = $HOME . '/.vim/refs/php-chunked-xhtml'
実際にマニュアルを参照するにはコマンドモードで以下のように実行してください。echo のマニュアルを見る例です。
:Ref phpmanual echo
ひゅ~~!表示されたー!
終わりに
Vim もっと使いこなしたいな~。