RUBY *ruby.vim* *ft-ruby-syntax* *vim-ruby-syntax* Ruby: Operator highlighting |ruby_operators| Ruby: Whitespace errors |ruby_space_errors| Ruby: Syntax errors |ruby_syntax_errors| Ruby: Folding |ruby_fold| |ruby_foldable_groups| Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines| Ruby: Spellchecking strings |ruby_spellcheck_strings| *ruby_operators* Ruby: Operator highlighting ~ Operators, and pseudo operators, can be highlighted by defining: > :let ruby_operators = 1 :let ruby_pseudo_operators = 1 < The supported pseudo operators are ., &., ::, *, **, &, <, << and ->. *ruby_space_errors* Ruby: Whitespace errors ~ Whitespace errors can be highlighted by defining "ruby_space_errors": > :let ruby_space_errors = 1 < This will highlight trailing whitespace and tabs preceded by a space character as errors. This can be refined by defining "ruby_no_trail_space_error" and "ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after spaces respectively. *ruby_syntax_errors* Ruby: Syntax errors ~ Redundant line continuations and predefined global variable look-alikes (such as $# and $-z) can be highlighted as errors by defining: > :let ruby_line_continuation_error = 1 :let ruby_global_variable_error = 1 < *ruby_fold* Ruby: Folding ~ Folding can be enabled by defining "ruby_fold": > :let ruby_fold = 1 < This will set the value of 'foldmethod' to "syntax" locally to the current buffer or window, which will enable syntax-based folding when editing Ruby filetypes. *ruby_foldable_groups* Default folding is rather detailed, i.e., small syntax units like "if", "do", "%w[]" may create corresponding fold levels. You can set "ruby_foldable_groups" to restrict which groups are foldable: > :let ruby_foldable_groups = 'if case %' < The value is a space-separated list of keywords: keyword meaning ~ -------- ------------------------------------- ~ ALL Most block syntax (default) NONE Nothing if "if" or "unless" block def "def" block class "class" block module "module" block do "do" block begin "begin" block case "case" block for "for", "while", "until" loops { Curly bracket block or hash literal [ Array literal % Literal with "%" notation, e.g.: %w(STRING), %!STRING! / Regexp string String and shell command output (surrounded by ', ", `) : Symbol # Multiline comment << Here documents __END__ Source code after "__END__" directive NONE and ALL have priority, in that order, over all other folding groups. *ruby_no_expensive* Ruby: Reducing expensive operations ~ By default, the "end" keyword is colorized according to the opening statement of the block it closes. While useful, this feature can be expensive; if you experience slow redrawing (or you are on a terminal with poor color support) you may want to turn it off by defining the "ruby_no_expensive" variable: > :let ruby_no_expensive = 1 < In this case the same color will be used for all control keywords. *ruby_minlines* If you do want this feature enabled, but notice highlighting errors while scrolling backwards, which are fixed when redrawing with CTRL-L, try setting the "ruby_minlines" variable to a value larger than 50: > :let ruby_minlines = 100 < Ideally, this value should be a number of lines large enough to embrace your largest class or module. *ruby_spellcheck_strings* Ruby: Spellchecking strings ~ Ruby syntax will perform spellchecking of strings if you define "ruby_spellcheck_strings": > :let ruby_spellcheck_strings = 1 < vim:tw=78:sw=4:ts=8:ft=help:norl: