ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Ruby勉強会@広島コミュのHowtoUseVimWithRails

  • mixiチェック
  • このエントリーをはてなブックマークに追加
【RailsでVimを使う方法】

自動的にクラスにジャンプさせる(やり方1):

これを.vimrcファイルに追加してください。

 set path+=/path/to/your/rails-application/app/**
 set path+=/path/to/your/rails-application/lib/**
 set suffixesadd=.rb
 set includeexpr+=substitute(v:fname,'s$','','g')
 "" or you can add substitution pattern s/ies$/y/g, s/ves$/f/g like this:
 "" set includeexpr+=substitute(substitute(substitute(v:fname,'s$','','g'),'ie$','y','g'),'ve$','f','g')

この後で、カーソルを次のようなクラス上にカーソルを移動させます。

 has_many :clubs

そしてgfとタイプすると、Vimは自動的にClubモデルのclub.rbファイルを開きます。これはrequireやscaffold、modelなどで使うことができます。

また(例えば:find todo_controllerのような):findコマンドにも使えます。残念なことに、ファイル名を入力するショートカットのようなものではありません。

もしこのやり方を上手く利用して「set path+=.rhtml」を追加すればすぐにRHTMLファイルを見つけることができます。しかし、壊れた名前の競合が起こってしまうかもしれません。

MVCで同じ名前衝突を避ける:

 map <F11> <Esc>:set suffixesadd=.rb<cr>gf
 map <F12> <Esc>:set suffixesadd=.rhtml<cr>gf

こうすることでF11キーは拡張子が.rb(通常のRubyのファイル)のファイルを開き、F12キーは拡張子が.rhtml(ERBファイル)のファイルを開くようになります。(上記のようなルールが必要になります)

クラスに自動的にジャンプさせる(やり方2)

How to use ctagsを見てください。

[Vim IDE]
もしscreenとvimの両方を使っているのでしたら、RailsでIDEのような開発環境を作ることができます。Vimのウインドウを分割し左側にファイルエクスプローラを作る為には下記のようにします。

 :vertical split "/

あなたが使いやすいような好みのウインドウのサイズを変更することができます(この例では20colsの幅にしてます)

 :vertical resize 20

それからセッションを保存します

 :mksession layout_ide.vim

これからは、このレイアウトでVimを起動することができます。

 vim -S layout_ide.vim

左側のファイルエクスプローラでファイルの上でSHIFT-oを押して右側のWindowにファイルを開くことができますし、左ペインでフォルダを開くにはEnterを押します。エクスプローラとコードウインドウ間をCTRL-w w もしくはCTRL-w CTRL-wで切り替えることができます。

翻訳者より:SHIFT-oしても右ペインにファイルを開くことができませんでした、どうすんの?上手くいった方教えて!

あなたは次のコマンドでペインを垂直に分割してvimを直接起動することができます。

 vim --cmd 'vsplit | vertical resize 30' app

Vim IDE(代替案)

ProjectプラグインはもうひとつのIDEアプローチです。使えるようにするには少し手間がかかります、しかしとてもよく考えられていて、ドキュメントも充実してますので恐れることはありません。あなたが実際に必要なファイル、ディレクトリを指定することで左ペインからそれらを簡単に選択することができます。典型的なファイルエクスプローラやバッファ管理プラグインよりも面白いアプローチです。

長く間Vimを使っているユーザでしたら使い易い唯一のIDEライクなソリューションだと思います。(GavinSinclair)

Projectクイックスタートガイド

Projectを簡単に使うにはGavinSinclairに同意しないといけません。ここではProjectをインストールした後に行うことの即席の説明になってます。

1.Vimで:Projectと入力してProjectプラグインを起動してください
2.Projectの作成ルーチンを起動するために\Cを入力して下さい
3.プロジェクトの名前を入力して下さい(例:RailsApp)
4.ディレクトリパスを入力して下さい(例:/User/me/Development/RailsApp)
5.CDパラメータとして'.'を入力してください
6.フィルターとして'*'を入力して下さい。
7.全てのファイルとディレクトリをロードさせる為に'\r'を入力してください。

これでProject内からアクセス可能なRailsアプリの完全なディレクトリリストがあるはずです。必要のないたくさんのディレクトリは削除されます(私は通常appとパブリックだけを扱いますので)

プロジェクトの設定をセーブする為には、単純にあなたが他のファイルでやるように:wで保存するだけです。Projectの設定に関しては:help projectを参照してください。

- Paul Chiu

Vim IDE(まだもうひとつ、いい代替策があるよ!)

ctagsとtaglistを使います。
ctags:(http://ctags.sourceforge.net/index.html)
taglist:(http://www.vim.org/scripts/script.php?script_id=273)

スクリーンショットです。(http://www.geocities.com/yegappan/taglist/screenshots.html)
自動的にRailsのプロジェクトファイルをロードしすばらしいMVC-tagsでファイルをリスト表示させるRails Tag List patchが必要です。スクリーンショットはhttp://www.logilogi.org/pub/railstaglist/screenshot-full.png を参照してください。

ScreenとVim:

screenでサーバを起動すれば、VIM IDEと違うウィンドウでtailコマンドでdeplopment.logファイルを見ることができます。次のようにrails.screenファイルを作成してください。

screen 1 ./script/server
split
focus
resize 20
screen 2 tail -F log/development.log
focus
screen 3 bash startvim

それから次の文を含むstartvimファイルを作成します。

vim -S layout_ide.vim

次のように環境を起動すればよくなります。

screen -c rails.screen

CTRL-A, CTRL-\で環境を閉じることができます。

.rhmltファイルをシンタックスハイライトさせる:

ここにerubyのシンタックスハイライトするプラグインが利用できます。
(http://www.vim.org/scripts/script.php?script_id=403)

Vimとシンタックスハイライト:

vimを利用してコードのシンタックスをハイライトされたバージョンを保存させることができます(webでの.htmlファイル等)、vim-script(http://bougyman.com/miscfiles/beautify.vim)を利用することでシェルで次のことを実行できます。(翻訳者注:リンク切れになってます)

vim -s beautify.vim someruby.rb

これからはsomeruby.rbやhtmlも同様にすればいいでしょう。
私は適切にフォーマットされるように.vimrcファイルに次の設定を好んで使います。

:set background=dark
:set tabstop=4

出力例:

翻訳者注:現在リンク切れになってます(2005/03/17)

著者:StephanSchemidt

省略, 変数のスキッピング、いろんななtips:

あなたはiabコマンドを使っていくつかの便利な省略形を定義することができます。例えば次のような設定になります。

iab forin for @element@ in @collection@<CR> @element@.@@<CR>end<Esc><<kk/@[^@]*@<CR>li

forinを次のように展開します。そしてインサートモードでその後にカーソルを起きます。
.vimに次のように追記することで@Shift-Tabを使って@@間をジャンプさせ、Shift-Delを使って@@で囲まれた部分を削除し次の変数に移動することができます。

imap <S-Tab> <Esc>/@[^@]*@/<CR>li
imap <S-Del> <Esc>ld/@<CR>xF@x/@[^@]*@<CR>li<C-Y>

最終的に、xml.vimのコピーを手に入れて、~/.vim/ftpluginsにそれを置き、html.vimとシンボリックリンクを張ります。

そして下記の設定を.vimrcに追記してください。

au BufNewFile,BufRead*.rhtml set filetype=xhtml

マジックを楽しんでください。

またRubyをハイライトさせるのに使うすごく便利なerubyのシンタックスファイルもあります。(http://www.vim.org/scripts/script.php?script_id=403)

上記の説明で作成したスクリプトはここ(http://www.vim.org/scripts/script.php?script_id=1318)から利用できます。

--Lllama

------------------------------------------------------------

ブロックオペレータをジャンプする:
これはRuby/RHTMLのブロックオペレータ間をジャンプするようにVIMを設定する方法の説明です。ここを読んで下さい(http://life.lukewarmtapioca.com/articles/2005/11/05/ruby-rhtml-jump-in-vim)

翻訳者:下記に訳します

もしあなたがVimを使っているのでしたら、すばらしい%コマンドに慣れているかと思います。%コマンドを使えば、{}や[]や()のようなブロックの初めと終わりの間を前後にジャンプすることができます。

残念なことにデフォルトではHTMLとRHTMLタグはサポートされてません。

matchitに感謝!(http://www.vim.org/scripts/script.php?script_id=39)

Matchitは多くの言語(ADA、HTMLなど)に対応しています。現在、我々はRHTMLファイルを適切なタイプ(HTML)と関連づける必要があります。

それでは~/.vimに次のような記述をしたfiletype.vimというファイルを作成します。
ファイルはhttp://lukewarmtapioca.com/filetype.vim からダウンロードできます。

カーソルを<% ... %>ブロックの始めに置き、%をヒットさせれるようになります。Tada!
これはHTMLのシンタックスをハイライトさせる機能も提供します)

更新:VIM-Rubyプロジェクトには同様にdefとend間をジャンプさせる.rbファイルのmatchit定義が含まれてます。

質問:

どなたかrakeテストをパースしてエラーになる文字列を見つけ、出力することができる方法を知りませんか? -mmlより

Railsで動作するようにctagsを修正した人はいませんか? -smmより

Rakeは単純にTest::Unitのエラーか失敗したメッセージを出力するたけだからVim/Rubyプロジェクトの一部であるTest::Unitコンパイラープラグインが利用できます。-djkより

カテゴリー:Howto

コメント(0)

mixiユーザー
ログインしてコメントしよう!

Ruby勉強会@広島 更新情報

Ruby勉強会@広島のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング