めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Meadow3のPHP-modeで関数補完(3)

php-modeで補完機能を使いたくて四苦八苦。
それだったら普通にテキストエディタ使えよ、という気もしないでもないです。
emacsは、Windowsでも、Mac OS X でも、Linuxでも動くから環境を選ばないし、設定もファイルになるから、保存しやすいよね?と自分に言い聞かせています。

(autoload 'php-mode "php-mode" "PHP mode" t)

php-modeというコマンドを使うときは、php-modeという.elをload-pathから読み込む。」という意味のようです。
でも、いつphp-modeというのを使うのか?.phpというファイルの時にphp-modeを使いたいので、それを指定します。

(setq auto-mode-alist (append '(("\\.php$" . php-mode)) auto-mode-alist))

これで動作しました。でも、補完機能が使えない!

(global-set-key "\C-j" 'dabbrev-expand)

これで動いたんだけれど、PHPの補完なのかな?
printとか、foreachとかは補完されますけれど、なんだか中途半端です。なんで?って調べたら、バッファに入っているのが補完される仕組みらしい?

で、もう、だめ...と思ったけれど、もう少し調べた。p0tさん?というかkomagataさんのところにリリースノートが少し載っているんです(SourceForgeでリリースノートを見る方法がわからなかった)。で、そこに「php-complete-function」というの載っているんです。

(setq php-manual-path "D:/meadow/site-lisp/html/")
(global-set-key "\C-j" 'php-complete-function)

ってやったら動いた。これで補完されます。
あとは、タブなんかも1タブ4スペースにしたいので、全部統合したらこうなりました。

(autoload 'php-mode "php-mode" "PHP mode" t)
(setq auto-mode-alist (append '(("\\.php$" . php-mode)) auto-mode-alist))
(setq php-manual-path "D:/meadow/site-lisp/html/")
(global-set-key "\C-j" 'php-complete-function)
(add-hook 'php-mode-user-hook
    '(lambda ()
       (setq-default tab-width 4)
       (setq indent-tabs-mode nil)
       (setq c-basic-offset 4)
    )
)

でも、ここでも気になるのが

add-hook
local-set-key
global-set-key

でした。これはなんだろう?あと、半角スペースだとかを色づけしたいんだけれど。