*vim-ruby.txt*

1. Ruby motions				|ruby-motion|
2. Ruby text objects			|ruby-text-objects|
3. Access modifier indentation		|ruby-access-modifier-indentation|
4. Block style indentation		|ruby-block-indentation|

==============================================================================
1. Ruby motions						*ruby-motion*

Vim provides motions such as |[m| and |]m| for jumping to the start or end of
a method definition. Out of the box, these work for curly-bracket languages,
but not for ruby. The |vim-ruby| plugin enhances these motions, by making them
also work on ruby files.

							*ruby-]m*
]m			Go to start of next method definition.

							*ruby-]M*
]M			Go to end of next method definition.

							*ruby-[m*
[m			Go to start of previous method definition.

							*ruby-[M*
[M			Go to end of previous method definition.

							*ruby-]]*
]]			Go to start of next module or class definition.

							*ruby-][*
][			Go to end of next module or class definition.

							*ruby-[[*
[[			Go to start of previous module or class definition.

							*ruby-[]*
[]			Go to end of previous module or class definition.

==============================================================================
2. Ruby text objects					*ruby-text-objects*

Vim's |text-objects| can be used to select or operate upon regions of text
that are defined by structure. The |vim-ruby| plugin adds text objects for
operating on methods and classes.

							*ruby-v_am* *ruby-am*
am			"a method", select from "def" until matching "end"
			keyword.

							*ruby-v_im* *ruby-im*
im			"inner method", select contents of "def"/"end" block,
			excluding the "def" and "end" themselves.

							*ruby-v_aM* *ruby-aM*
aM			"a class", select from "class" until matching "end"
			keyword.

							*ruby-v_iM* *ruby-iM*
iM			"inner class", select contents of "class"/"end"
			block, excluding the "class" and "end" themselves.

==============================================================================
3. Access modifier indentation             *ruby-access-modifier-indentation*
                                           *g:ruby_indent_access_modifier_style*

Different access modifier indentation styles can be used by setting: >

	:let g:ruby_indent_access_modifier_style = 'normal'
	:let g:ruby_indent_access_modifier_style = 'indent'
	:let g:ruby_indent_access_modifier_style = 'outdent'
<
By default, the "normal" access modifier style is used.

Access modifier style "normal":
>
  class Indent
    private :method
    protected :method
    private
    def method; end
    protected
    def method; end
    public
    def method; end
  end
<
Access modifier style "indent":
>
  class Indent
    private :method
    protected :method
    private
      def method; end
    protected
      def method; end
    public
    def method; end
  end
<
Access modifier style "outdent":
>
  class Indent
    private :method
    protected :method
  private
    def method; end
  protected
    def method; end
  public
    def method; end
  end
<

==============================================================================
4. Block style indentation                      *ruby-block-style-indentation*
                                                *g:ruby_indent_block_style*

Different block indentation styles can be used by setting: >

	:let g:ruby_indent_block_style = 'expression'
	:let g:ruby_indent_block_style = 'do'
<
By default, the "expression" block indent style is used.

Block indent style "expression":
>
  first
    .second do |x|
    something
  end
<
Block indent style "do":
>
  first
    .second do |x|
      something
    end
<

 vim:tw=78:sw=4:ts=8:ft=help:norl:
