Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

rails.vimからrailsへの依存をなくしたprojectionist.vimを(railsで)使ってみた

$
0
0

projectionist.vim とは

https://github.com/tpope/vim-projectionist
http://www.vim.org/scripts/script.php?script_id=4989

rails.vimの:Aとか:Exxxとかの機能を、railsに関係なく、jsonで記述したルールに従って使えるようになっているプラグイン。 rails.vimと共存できない。

railsで使うとどのへんが嬉しいのか

プロジェクト固有に導入したものに対して:Aや:Exxxを使えるようにできる。例えば

  • active_decoratorを使っていれば:Edecoratorができる
  • active_adminを使っていれば、app/admin/hoge.rbから:Aでspec/features/admin/hoge_spec.rbを開ける

逆にどのへんが悲しいのか

rails.vimを使うのをやめないといけないので、:Emodelなどrails.vimでデフォルトなものの定義も書かないといけない。

https://github.com/tpope/vim-rails/issues/326

何をすれば使えるのか

1. rails.vimを使わないようにする

" Bundle 'tpope/vim-rails'

2. projectionist.vimを使うようにする

Bundle 'tpope/vim-projectionist'

3. .projection.jsonを記述する

プロジェクトのルート直下に置く。

.projection.json
{"app/admin/*.rb":{"alternate":["spec/features/admin/{}_spec.rb","spec/features/admin/{plural}_spec.rb"],"type":"admin"},"app/controllers/*_controller.rb":{"alternate":"spec/controllers/{}_controller_spec.rb","type":"controller"},"app/decorators/*_decorator.rb":{"alternate":"spec/decorators/{}_decorator_spec.rb","type":"decorator"},"app/helpers/*_helper.rb":{"alternate":"spec/helpers/{}_helper_spec.rb","type":"helper"},"app/mailers/*_mailer.rb":{"alternate":"spec/mailers/{}_mailer_spec.rb","type":"mailer"},"app/models/*.rb":{"alternate":"spec/models/{}_spec.rb","type":"model"},"app/workers/*.rb":{"alternate":"spec/workers/{}_spec.rb","type":"worker"}}

alternate項目を書けば:A系コマンドが、type項目を書けば:E系コマンドが使えるようになる。
:Aコマンドが一方通行なので、逆もやりたかったらそのための定義が必要っぽい。

詳細は :help projectionist に。

projectionという考え方自体はvim関係ないよねという話

https://github.com/tpope/vim-projectionist#faq

Why not a clearer filename like .vim_projections.json?

I don't see any reason to tie the concept of projections to Vim in particular.
While some features (in particular navigation commands) are idiosyncratic to
the way Vim works, others could make sense in a wide variety of editors.

関係ないので、guard-rspecの設定も.projection.jsonを読ませるようにしてみたりしたいなーと思っている。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>