1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
# rails.vim
This is a massive (in a good way) Vim plugin for editing Ruby on Rails
applications.
* Easy navigation of the Rails directory structure. `gf` considers
context and knows about partials, fixtures, and much more. There are
two commands, `:A` (alternate) and `:R` (related) for easy jumping
between files, including favorites like model to schema, template to
helper, and controller to functional test. Commands like `:Emodel`,
`:Eview`, `:Econtroller`, are provided to `:edit` files by type, along
with `S`, `V`, and `T` variants for `:split`, `:vsplit`, and
`:tabedit`. Throw a bang on the end (`:Emodel foo!`) to automatically
create the file with the standard boilerplate if it doesn't exist.
`:help rails-navigation`
* Enhanced syntax highlighting. From `has_and_belongs_to_many` to
`distance_of_time_in_words`, it's here.
* Interface to the `rails` command. Generally, use `:Rails console` to
call `rails console`. Many commands have wrappers with additional features:
`:Generate controller Blog` generates a blog controller and loads the
generated files into the quickfix list, and `:Runner` wraps `rails runner`
and doubles as a direct test runner. `:help rails-exec`
* Default task runner. Use `:Rails` (with no arguments) to run the current
test, spec, or feature. Use `:.Rails` to do a focused run of just the
method, example, or scenario on the current line. `:Rails` can also run
arbitrary migrations, load individual fixtures, and more.
`:help rails-default-task`
* Partial and concern extraction. In a view, `:Extract {file}`
replaces the desired range (typically selected in visual line mode)
with `render '{file}'`, which is automatically created with your
content. In a model or controller, a concern is created, with the
appropriate `include` declaration left behind.
`:help rails-:Extract`
* Fully customizable. Define "projections" at the global, app, or gem
level to define navigation commands and override the alternate file,
default rake task, syntax highlighting, abbreviations, and more.
`:help rails-projections`.
* Integration with other plugins. If [dispatch.vim][] is installed, `:Rails`
and other command wrappers will use it for asynchronous execution. Users of
[abolish.vim](https://github.com/tpope/vim-abolish) get pluralize and
tableize coercions, and users of [bundler.vim][] get a smattering of
features. `:help rails-integration`
## Installation
If you don't have a preferred installation method, I recommend
installing [pathogen.vim](https://github.com/tpope/vim-pathogen), and
then simply copy and paste:
cd ~/.vim/bundle
git clone https://github.com/tpope/vim-rails.git
vim -u NONE -c "helptags vim-rails/doc" -c q
While not strictly necessary, [bundler.vim][] and [dispatch.vim][] are highly
recommended.
[bundler.vim]: https://github.com/tpope/vim-bundler
[dispatch.vim]: https://github.com/tpope/vim-dispatch
## FAQ
> I installed the plugin and started Vim. Why does only the `:Rails`
> command exist?
This plugin cares about the current file, not the current working
directory. Edit a file from a Rails application.
> I opened a new tab. Why does only the `:Rails` command exist?
This plugin cares about the current file, not the current working directory.
Edit a file from a Rails application. You can use `:AT` and the `:T` family
of commands to open a new tab and edit a file at the same time.
> Can I use rails.vim to edit Rails engines?
It's not supported, but if you `touch config/environment.rb` in the root
of the engine, things should mostly work.
> Can I use rails.vim to edit other Ruby projects?
I wrote [rake.vim](https://github.com/tpope/vim-rake) for exactly that
purpose. It activates for any project with a `Rakefile` that's not a
Rails application.
> What Rails versions are supported?
All of them, although you may notice a few minor breakages if you dip below
3.0. A few features like syntax highlighting tend to reflect the latest
version only.
> Didn't rails.vim used to handle indent settings?
It got yanked after increasing contention over JavaScript. Check out
[sleuth.vim](https://github.com/tpope/vim-sleuth).
## Self-Promotion
Like rails.vim? Follow the repository on
[GitHub](https://github.com/tpope/vim-rails) and vote for it on
[vim.org](http://www.vim.org/scripts/script.php?script_id=1567). And if
you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
[Twitter](http://twitter.com/tpope) and
[GitHub](https://github.com/tpope).
## License
Copyright (c) Tim Pope. Distributed under the same terms as Vim itself.
See `:help license`.
|