vim で PHPソースコードの整形を行なう方法

汚ないPHPソースコードを触る場合は、まず整形したくなります。PHP用のeclipseを使っても、javaのフォーマット程真面目には整形してくれないようだったので、 vimでのフォーマット(gg=G など)だと、インデントの修正だけで、細かい部分(演算子の両脇にスペースを入れるなど)までは整形できません。 vimで開いているPHPのソースコードを細かく整形する方法を調べたところ、phpStylistというものを使って実現できました。 (テスト的に試したところうまく整形できているようですが、使い初めなので、不都合がでるかもしれません)

以下、設定方法です。

ダウンロード

インストール

$ mkdir -p ~/tmp/phpStylist
$ cd ~/tmp/phpStylist
$ unzip <ダウンロードディレクトリ>/phpStylist-1.0.zip
$ mkdir -p ~/bin
$ cp phpStylist.php ~/bin/

vimから呼び出し用のスクリプト作成

  • ~/bin/phpStylist
#!/bin/sh
BASE=$(dirname $0)
php $BASE/phpStylist.php $1 \
	--indent_size 1 \
	--indent_with_tabs \
	--keep_redundant_lines \
	--space_after_comma \
	--space_around_assignment \
	--space_around_comparison \
	--space_around_arithmetic \
	--space_around_logical \
	--space_around_colon_question \
	--space_after_if \
	--else_along_curly \
	--add_missing_braces \
	--line_after_break \
	--space_inside_for \
	--indent_case \
	--vertical_array \
	--align_array_assignment \
	--space_around_double_arrow \
	--space_around_concat \
	--line_before_comment_multi

vimプラグイン配置

  • ~/.vim/plugin/phpStylist.vim
function! s:PhpStylist()
	execute "w"
	normal ggdG
	execute "0r!~/bin/phpStylist %"
	normal Gdd
endfunction
command! PhpStylist call <SID>PhpStylist()

実行

vimでphpファイルを開いている状態で、:PhpStylist を実行すると、開いてるファイルの内容をphpStylistで整形後の内容に置き換えます。ところどころ強引な力技がはさまれてますが、一応うちの環境では使えるようになりました。

One Pingback

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.