Rinari
先日 emacs-rails を入れたばかりなのですが、.erb への対応が微妙だったりするため、Rinari を導入してみました。Rinari は、emacs の Ruby on Rails 用マイナーモードです。
公式サイトによると、メジャーモードとして、Ruby Mode/YAML Mode/CSS Mode/JavaScript Mode が選べるようです。
参考サイト
インストールと設定は、公式サイトと参考サイトの通りに進めばOK.
rhtml-mode もぜひ入れましょう。.html.erb にも対応しています。
ナビゲーション
Webアプリ開発で特にストレスになる関連ファイル間の行き来。ナビゲーションとは、ファイルの行ったり来たりを助けるショートカットキーの集まりです。
Rinari にはナビゲーションのためのキーバインドがたくさんあります。-> 全キーバインドはこちら
その中でも、自分が特に頻繁に使うと思うものをあげてみます。
C-c ; f c (controller を開く)
モデルやビュー、ヘルパ、migrationファイルを開いた状態で叩くと、関連するコントローラにとびます。関連するコントローラが定まらない場合(javascriptを開いているとか)、選択モード(TAB補完)になります。
C-c ; f h (helper を開く)
モデルやビュー、コントローラ、migrationファイルを開いた状態で叩くと、関連するヘルパにとびます。関連するヘルパが定まらない場合、選択モードになります。
C-c ; f i (migration を開く)
モデルやビュー、コントローラ、ヘルパを開いた状態で叩くと、関連するmigrationファイルにとびます。関連するmigrationファイルが定まらない場合、選択モードになります。
C-c ; f m (model を開く)
migrationファイル、ビュー、コントローラ、ヘルパを開いた状態で叩くと、関連するモデルにとびます。関連するモデルが定まらない場合、選択モードになります。
C-c ; f v (view を開く)
コントローラのアクションメソッドの行にカーソルを置いた状態で叩くと、関連するビューにとびます。関連するビューが定まらない場合、選択モードになります。
C-c ; が Rinari のキーバインドをあらわすプレフィックスのようです。
f(ind) c(ontroller) など、直感的なのですぐ覚えられます。
# ほんとはここに C-c ; f t (test を開く) も入れとかないと。。。
実行モード
rake, console起動, server起動なども emacs から可能になります。
M-x rinari-rake (or C-c ' r) : rake 実行
M-x rinari-console (or C-c ' c) : script/console 起動
M-x rinari-sql (or C-c ' q) : 対話モードのDBクライアント起動
- 私の環境 (sqlite3) では、SQLを入力すると "Unable to open database" というエラーが出て動きません(「sqlite>」 というプロンプトは出ます)。;_;
M-x rinari-web-server (or C-c ' w) : script/server 起動
- 停止させる場合は C-c C-c を入力します。通常(シェルから起動した場合)の C-c では止まりません。
M-x rinari-test (or C-c ' t) : カーソル位置の test function, もしくは関連する test function の実行
yasnippet
yasnippet は、コード補完 Emacs Lisp です。また、メニューから豊富なSnippet(よく使うコードの切れ端?)を選んでソース中に貼り付けられるようになります。
自作Snippetを追加したり、カスタマイズすると強力なツールになるとのことらしい。
導入方法は、こちらに詳しいです。
yasnippet.elをインストールしてみた
デフォルトで含むのは ruby-mode のみなので、Rails 用の拡張もこちらから入手してきます。
# 私の環境では、def ~ end の補完や、{ } (ブロック) の補完はしてくれません。snippet.el だとできたのですが。設定が良くないのでしょうか。
(設定に以下を追加)
;; ruby-electric.el --- electric editing commands for ruby files
(require 'ruby-electric)
(add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t)))
一応、参考までに。
.emacs 設定 (for Rinari & yasnippet)
;; rinari
(add-to-list 'load-path (expand-file-name "~/emacs/site-lisp/rinari"))
(require 'rinari)
(add-to-list 'load-path (expand-file-name "~/emacs/site-lisp/rhtml"))
(require 'rhtml-mode)
(add-hook 'rhtml-mode-hook
(lambda () (rinari-launch)))
;; yasnippet
(require 'yasnippet)
(yas/initialize)
(yas/load-directory "~/.emacs.d/snippets")
(yas/load-directory "~/.emacs.d/rails-snippets")
;; ruby-electric.el --- electric editing commands for ruby files
(require 'ruby-electric)
(add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t)))
0 件のコメント:
コメントを投稿