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

rails.vim でファイル間のマッピング(projections)を追加する

$
0
0

rails.vim の :A(関連ファイルを開く)とか :AV(関連ファイルを画面分割して開く)とか、便利ですよね。しかし、これらはデフォルトでは model や controller など最初からあるものでしか使えません。

7 Patterns to Refactor Fat ActiveRecord Modelsにあるような app/servicesなどを導入した時は、service でも同じように :AVとかを使いたいです。

rails.vim では、このファイル間の関連を projections と呼んでいるようです。projections に自分で追加するには、いくつか方法があります。

.vimrc

.vimrcなどで g:rails_projectionsを設定します。

.vimrc
let g:rails_projection = {
  \ "app/services/*.rb": {
  \   "command": "service",
  \   "test": "spec/services/%s_spec.rb"
  \ }
  \ }

これで :Rserviceで service のファイルを開いたり、:Rservice!で作成したり、:Aなどで spec ファイルを開いたりできるようになります。もうちょっといろいろ設定できるので、詳細は :help rails-projectionsを参照してください。

config/projections.json

しかし、これだとチームで設定を共有できませんよね。また、プロジェクトによってディレクトリ構造が違う場合もあるかもしれません。そういう場合は、プロジェクト毎に config/projections.rbに設定を記入します。

config/projections.rb
{"app/services/*.rb":{"command":"service","test":"spec/services/%s_spec.rb"}}

Rails 以外では

なお、Rails 以外でも同じようなことをするための projections.vimというプラグインもあるようです。使ったことはありませんが、他の言語のプロジェクトで試してみてはいかがでしょう。

参考


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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