rails.el まとめ
rails.vim の情報は→id:secondlife:20061222:1166781841へどうぞ。
最近お仕事で初めてRailsのコードを書いているのですが、書きはじめて1週間くらい経ってからやっと rails.el の存在に気付きました。
僕に Rails を教えてくれる、はてのくんは Vim 使いだったり、そもそも rails.el はもはや常識なので、僕が素のEmacs + ruby-mode で苦労しているのに気付かなかったという。
インストールして使ってみたらとても便利だし、開発効率があがりそうだったので備忘録がてらまとめてみました。
インストール
3つ必要です。
- rails.el一式(http://rubyforge.org/projects/emacs-rails/)
- find-recursive.el (http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt)
- snippet.el (http://www.kazmier.com/computer/snippet.el)
これらをロードパスの通ったところにおいて .emacs に以下のように書きます。
(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)) (setq rails-use-mongrel t) (require 'rails)
使いそうな機能を抜粋
対応するファイルへの切替え (C-c ↑)
頻繁に行き来する controller <=> view を簡単に切替えられます。
これがあるとないとでは全然違う。
キーバインドがちょっと苦しいので以下のようにしておくと、直感的に使えるかもしれません。
(define-key rails-minor-mode-map "\C-c\C-p" 'rails-lib:run-primary-switch)
行き先を選べるファイル切替え (C-c ↓)
これもキーバインドが辛いので割り当てる。
(define-key rails-minor-mode-map "\C-c\C-n" 'rails-lib:run-secondary-switch)
テンプレートの partial を簡単に(C-c p)
rhtmlを編集時に、範囲選択して C-c p するとそこの部分を別テンプレートにできる。
メニューを開く
例えば model をいじりたいと思ったときは C-c C-c g m(Modelのm!)をするとModel一覧が出ます。
C-c C-c g がprefixで以下のキーを押すと、対応するメニューが開きます。
- M - for Models
- C - for Controllers
- H - for Helpers
- L - for Layouts
- S - for Stylesheets
- J - for Javascripts
- G - for miGrations
関連するファイルを開く(C-Enter)
これがかなり便利なので覚えて損はないです。
例えばソース中で
layout 'hatena'
のところでカーソルをあてて C-Enter するとviews/layout/hatena.rhtml に飛びます。
Railsの規約でファイルが一意に決まるのであれば、いろいろな場所で使えるっぽい。
redirect_to :action => 'show', :youtube_id => @video.youtube_id
atcionのところで C-Enter すると show メソッドに飛びます。
ログを開く (C-c C-c l)
簡単にログを開けます。しかも tail モードで!
rake (C-c C-c s r)
簡単に rake できます。 rakeのターゲットが補完されるので迷う事がないです。
API document(C-F1)
.emacs にAPIドキュメントのパスを書いておきます。(フルパスが良いです。)
(setf rails-api-root "/home/taro/rails/doc/api")
render :text => open(CGI::unescape(params[:url])).read
例えば render にカーソルをおいて、C-F1でブラウザに render のヘルプが表示されます。
ちなみに、F1を押すとRubyのドキュメントを検索できます。(apt-get install ri が必要だった)
Ruby Mode Snippets
.rhtmlで li と打ってtabを押すと link_to に展開されます。
RoR Wiki 翻訳 Wiki - HowToUseEmacsWithRails
使いそうなのは % とか %% とか、licaiとかかな。
ちなみに、rhtml でSnippetを有効にするには html-mode であることが必要なようです。
(setq auto-mode-alist (cons '("\\.rhtml$" . html-mode) auto-mode-alist))