Carbon Emacsでemacs-railsを使う
Emacsをちゃんと使うこともかねて、emacs-railsを使うことにした。
まずは.elを設置する場所を決めないと。MacOS Xの作法がいまだによくわからないけど、perlを参考にして~/Library/Emacsに決めた。
> mkdir -p ~/Library/Emacs
必要な配布物を取得して、このディレクトリの下に展開する。必要なのは次の4つ。
- ruby-mode.el他 ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz
- emacs-rails http://rubyforge.org/frs/?group_id=1484&release_id=7186
- snippet.el http://www.kazmier.com/computer/snippet.el
- find-recursive.el http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt
> find Library/Emacs Library/Emacs Library/Emacs/emacs-rails Library/Emacs/emacs-rails/ChangeLog Library/Emacs/emacs-rails/rails-core.el Library/Emacs/emacs-rails/rails-for-controller.el Library/Emacs/emacs-rails/rails-for-layout.el Library/Emacs/emacs-rails/rails-for-rhtml.el Library/Emacs/emacs-rails/rails-lib.el Library/Emacs/emacs-rails/rails-navigation.el Library/Emacs/emacs-rails/rails-ruby.el Library/Emacs/emacs-rails/rails-scripts.el Library/Emacs/emacs-rails/rails-ui.el Library/Emacs/emacs-rails/rails-webrick.el Library/Emacs/emacs-rails/rails.el Library/Emacs/emacs-rails/README Library/Emacs/find-recursive.el Library/Emacs/inf-ruby.el Library/Emacs/README Library/Emacs/ruby-electric.el Library/Emacs/ruby-mode.el Library/Emacs/rubydb2x.el Library/Emacs/rubydb3x.el Library/Emacs/snippet.el
あとは.emacsで設定するだけ。今後、サブディレクトリが増えるたびにload-pathに設定するのが面倒なので、以下の内容でsubdirs.elを作成する。
(normal-top-level-add-subdirs-to-load-path)
.emacsはこんな感じ。
;;;; load-path 追加 (let ((dir (expand-file-name "~/Library/Emacs"))) (if (member dir load-path) nil (setq load-path (cons dir load-path)) (let ((default-directory dir)) (load (expand-file-name "subdirs.el") t t t)))) ;;;; ruby-mode.el (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files") (add-to-list 'auto-mode-alist '("\\.rb$" . ruby-mode)) (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode)) (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys))) ;;;; emacs-rails (defun try-complete-abbrev (old) (if (expand-abbrev) t nil)) (setq hippie-expand-try-functions-list '(try-complete-abbrev try-complete-file-name try-expand-dabbrev)) (require 'rails)
適当なcontrollerのファイルを開いてみると、RubyかつRoRなmodeになっていることが確認できる。
あとはrails-create-projectを実行した際に、リポジトリを作ったりdatabase.yamlを編集したりする自作スクリプトが実行されるように変更すれば完璧。