A plugin that helps with switching between single-line and multiline code
Vim script
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
autoload
doc
ftplugin
plugin
README

README

This is a mirror of http://www.vim.org/scripts/script.php?script_id=3613

Github repo is at https://github.com/AndrewRadev/splitjoin.vim

This plugin is meant to simplify a task I've found too common in my workflow: switching between a single-line statement and a multi-line one.

I usually work with ruby and a lot of expressions can be written very concisely on a single line. A good example is the "if" statement:

    puts "foo" if bar?

This is a great feature of the language, but when you need to add more statements to the body of the "if", you need to rewrite it:

    if bar?
      puts "foo"
      puts "baz"
    end

The idea of this plugin is to introduce a single key binding for transforming a line like this:

    <div id="foo">bar</div>

Into this:

    <div id="foo">
      bar
    </div>

And another binding for the opposite transformation.

This currently works for:
  * Various constructs in Ruby and Eruby
  * Various constructs in Coffeescript
  * Various constructs in Perl
  * Various constructs in Python
  * PHP arrays
  * Javascript object literals and functions
  * Tags in HTML/XML
  * CSS, SCSS, LESS style declarations.
  * YAML arrays
  * Lua functions
  * Vimscript line continuations

For more information, try :help splitjoin, or take a look at the help file online at https://github.com/AndrewRadev/splitjoin.vim/blob/master/doc/splitjoin.txt

For more examples and corner cases, you can explore the "examples" directory here: https://github.com/AndrewRadev/splitjoin.vim/tree/master/examples. It's not present in the downloadable zip file to avoid cluttering your vimfiles with useless stuff.

If you encounter any bugs or have an idea for a new feature, the issue tracker is on github, at https://github.com/AndrewRadev/splitjoin.vim/issues.