EmacsでPHP開発の環境設定(2)


以前、EmacsPHP開発の環境設定を試みたが、うまく設定できずにまた今度設定し直すとしたが、今回改めて設定を試みた。
2011-02-16 - SE街道まっしぐら


うまく行かなかったのは、CentOSで以前は、php-modeのインストールに失敗していたが、Emacs21を利用していて、それに対応していないphp-mode-1.5.0のバージョンのelispを設定しようとしていたのが原因だった。つまりは、Emacs23対応のelispを適用しようとして失敗していた。・・・残念だわ。


その原因を踏まえ、今回は、以下の方法でEmacsのインストール・設定を行い、PHPの開発環境の設定を行った。


まず、さくらのVPS(CentOS 5.5)から、Emacs21のアンインストールを行った。

$ rpm -qa | grep -i emacs
emacs-common-21.4-20.el5
emacs-21.4-20.el5
emacs-el-21.4-20.el5
$ sudo rpm -e emacs
$ sudo rpm -e emacs-el
$ sudo rpm -e emacs-common


その後、rpmのリポジトリに存在していないので、以下のように外部のリポジトリから取得する。

$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/emacs-23.2-13.x86_64.rpm
$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/emacs-common-23.2-13.x86_64.rpm
$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/emacs-el-23.2-13.x86_64.rpm
$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/hunspell-1.2.8-1.x86_64.rpm
$ sudo rpm -Uvh emacs-common-23.2-13.x86_64.rpm
$ sudo rpm -Uvh emacs-el-23.2-13.x86_64.rpm
$ sudo rpm -Uvh hunspell-1.2.8-1.x86_64.rpm
$ sudo rpm -Uvh emacs-23.2-13.x86_64.rpm


前回の設定で、php-mode-1.5.0のインストール・設定は済ませていたので、ここでは割愛する。


PHPの補完機能のelispとして、php-completionをインストールする。インストールの順序は、install-elisp.elを使ってphp-completion.elをインストールする。

M-x install-elisp-from-emacswiki anything.el -> C-c C-c
M-x install-elisp-from-emacswiki anything-match-plugin.el -> C-c C-c
M-x install-elisp-from-emacswiki auto-complete.el -> C-c C-c
M-x install-elisp-from-emacswiki php-completion.el -> C-c C-c


php-comletion.elの設定のために、.emacsに以下の設定を記述する。

(add-hook 'php-mode-hook
         (lambda ()
             (require 'php-completion)
             (php-completion-mode t)
             (define-key php-mode-map (kbd "C-o") 'phpcmp-complete)
             (when (require 'auto-complete nil t)
             (make-variable-buffer-local 'ac-sources)
             (add-to-list 'ac-sources 'ac-source-php-completion)
             (auto-complete-mode t))))


emacsを再起動後、php-completionが有効になっているかどうかを確認する。test.phpを新規作成した後に、aとタイプしてC-oコマンドで候補のリストが表示されることを確認する。問題なく表示されれば、インストール・設定、完了。めでたし。