Surround for the Atom editor.
CoffeeScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
keymaps
lib
spec
.gitignore
.travis.yml
CHANGELOG.md
LICENSE.md
README.md
package.json

README.md

Vim Surround for Atom Build Status

NOTE: vim-surround for atom is obsoleted by vim-mode-plus. See 40 for more information.

Surround is an implementation of vim-surround for the atom editor, creating a vim-surround with the power of Atom!

You should definitely have vim-mode for this package to function properly, of course.

Inspiration from and kudos to the wonderful vim-surround for vim

See vim-surround on github or atom.io.

News

  • This package supports visual mode's s ) set of commands for a configurable set of pairs.

  • Next on the roadmap are pair deletions with d ) and friends.

  • New in 0.4: Multiple cursors are now supported, and conveniently work just like you think they do.

  • New in 0.5: Stable configuration changes and configurable surround key!

  • New in 0.7: Change surround and delete surround added.

  • New in 0.8: Tentative support for vim-mode-next. See #28.

Muscle Memory Compatability Note

vim-surround uses a lowercase s instead of S for surround commands! This is configurable in the package settings, if you would like to set it to the original keybinding.

How to use Surround

Surrounding

For double quotes, highlight the string in visual mode and enter s ".

Hello world -> "Hello world"

For parentheses there are two options. s ) will surround as normal. s ( will pad with a space. All asymmetrical pairs have the secondary space-padded form.

For example:

s )

Hello world -> (Hello world)

s (

Hello world -> ( Hello world )

Changing Surrounding Pairs

Suppose I want to make double quotes into single quotes. To do this, I should put my cursor inside the double quotes in question and enter c s " '

"Hello world" -> 'Hello world'

Deleting Surrounding Pairs

To delete the single quotes, place your cursor inside of them and enter d s '

'Hello world' -> Hello world

Configuration

Currently, the following pairs work out of the box!:

  • ()
  • []
  • {}
  • ""
  • ''

You can add to the available pairs in atom's settings, and the commands will be dynamically added to your keybindings.

For example if I'm working on Jinja templates, and I want to add the ability to surround using {% and %} I would add this in my settings:

(), [], {}, "", '', {%%}

Then:

s % }

Hello world -> {%Hello world%}

s { %

Hello world -> {% Hello world %}

TODO

  • Implement deleting surrounding pairs with d s
  • Implement changing surrounding pairs with c s
  • Intelligent tag surrounding/deleting/replacing with s <q> and friends.