久しぶりにEmacsの設定をいじってみた

久しぶりにやりたい事が出来たので、追加。

本当は用意されているのかもだけど、とりあえず書いてみた。

保存されたら。。。

スクリプトを保存する時,自動的に 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で出来そうな事は取り入れます。

プロフィール

このブログ記事について

このページは、koshigoeが2006年8月12日 20:04に書いたブログ記事です。

ひとつ前のブログ記事は「環境変数が入り乱れてるのが嫌」です。

次のブログ記事は「Ruby勉強中〜配列」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。