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
でした。これはなんだろう?あと、半角スペースだとかを色づけしたいんだけれど。