久しぶりにやりたい事が出来たので、追加。
本当は用意されているのかもだけど、とりあえず書いてみた。
保存されたら。。。
『スクリプトを保存する時,自動的に chmod +x を行なうようにする』を参考。
"(add-hook 'after-save-fook ...)"で保存後の動作を定義出来るらしい。なので、これにPHP構文チェック関数を関連づけてみる。プチIDE。
(add-hook 'php-mode-user-hook
'(lambda ()
(modify-syntax-entry ?_ "w" php-mode-syntax-table)
(define-key php-mode-map "\C-c\C-l" 'php-lint)
(define-key php-mode-map '[(control .)] nil)
(define-key php-mode-map '[(control c)(control .)] 'php-show-arglist)
(define-key php-mode-map (kbd "C-c z t") 'zftemplate)
(setq php-manual-path "/opt/local/share/php/doc")
(setq php-manual-url "http://jp.php.net/manual/ja/index.php")
(add-hook 'after-save-hook 'php-lint)
))
関係ないのも書いてあるけど、php-mode-user-hookに"(add-hook 'after-save-hook 'php-lint)"。を追加。
Ruby周りのEmacsよくわからない。。。
ずっとPHPだったので、ruby-modeよく知りません。急場しのぎという事で、自前でいくつか書いてみる。
;;; ;;; Rubyの構文チェック
(defun ruby-lint ()
"Performs a Ruby lint-check on the current file."
(interactive)
(shell-command (concat "/opt/local/bin/ruby -c " (buffer-file-name))))
(add-hook 'ruby-mode-hook
'(lambda ()
(inf-ruby-keys)
(define-key ruby-mode-map "\C-c\C-f" 'refe)
(define-key ruby-mode-map "\C-c\C-l" 'ruby-lint)
(add-hook 'after-save-hook 'ruby-lint)
))
構文チェックと、refeと自動構文チェック。実際は、inf-rubyとかの記述もあります。
ファイル単位で実行。。。
『PHPをリージョン単位で手軽に実行したい』という欲求から、単純なevalスクリプトを活用してますが、ファイル自体を実行する方法は用意してませんでした。意外と使い道が違ったりするので、ファイル実行関数も用意しました。
(defun php-exec () "Execute a PHP on the current file." (interactive) (shell-command (concat "/opt/local/bin/php " (buffer-file-name))))
もちろん、これもキー割当(適当にC-cC-d; 衝突してるかな?)。とりあえず動きます。requireでの相対指定も大丈夫。
あとは。。。
デバッグ方法とかよく分かってないので、その辺勉強してEmacsで出来そうな事は取り入れます。


コメントする