]> git.r.bdr.sh - rbdr/dotfiles/blame_incremental - atom/packages/vim-surround/README.md
Adds yajs submodule
[rbdr/dotfiles] / atom / packages / vim-surround / README.md
... / ...
CommitLineData
1# Vim Surround for Atom [![Build Status](https://travis-ci.org/gepoch/vim-surround.svg?branch=master)](https://travis-ci.org/gepoch/vim-surround)
2
3Surround is an implementation of vim-surround for the [atom](http://atom.io)
4editor, creating a vim-surround with the power of Atom!
5
6You should definitely have [vim-mode](https://atom.io/packages/vim-mode) for
7this package to function properly, of course.
8
9Inspiration from and kudos to the wonderful [vim-surround for
10vim](https://github.com/tpope/vim-surround)
11
12See vim-surround on [github](https://github.com/gepoch/vim-surround) or
13[atom.io](https://atom.io/packages/vim-surround).
14
15## News
16
17* This package supports visual mode's `s )` set of commands for a configurable
18 set of pairs.
19
20* Next on the roadmap are pair deletions with `d )` and friends.
21
22* New in 0.4: Multiple cursors are now supported, and conveniently work just
23 like you think they do.
24
25* New in 0.5: Stable configuration changes and configurable surround key!
26
27* New in 0.7: Change surround and delete surround added.
28
29* New in 0.8: Tentative support for
30 [vim-mode-next](https://atom.io/packages/vim-mode-next). See
31 [#28](https://github.com/gepoch/vim-surround/issues/28).
32
33### Muscle Memory Compatability Note
34
35vim-surround uses a lowercase `s` instead of `S` for surround commands! This is
36configurable in the package settings, if you would like to set it to the
37original keybinding.
38
39## How to use Surround
40
41### Surrounding
42
43For double quotes, highlight the string in visual mode and enter `s "`.
44
45```
46Hello world -> "Hello world"
47```
48
49For parentheses there are two options. `s )` will surround as normal. `s (`
50will pad with a space. All asymmetrical pairs have the secondary space-padded
51form.
52
53For example:
54
55`s )`
56
57```
58Hello world -> (Hello world)
59```
60
61`s (`
62
63```
64Hello world -> ( Hello world )
65```
66
67### Changing Surrounding Pairs
68
69Suppose I want to make double quotes into single quotes. To do this, I should
70put my cursor inside the double quotes in question and enter `c s " '`
71
72```
73"Hello world" -> 'Hello world'
74```
75
76### Deleting Surrounding Pairs
77
78To delete the single quotes, place your cursor inside of them and enter `d s '`
79
80```
81'Hello world' -> Hello world
82```
83### Configuration
84
85Currently, the following pairs work out of the box!:
86
87- ()
88- []
89- {}
90- ""
91- ''
92
93You can add to the available pairs in atom's settings, and the commands will
94be dynamically added to your keybindings.
95
96For example if I'm working on Jinja templates, and I want to add the ability to
97surround using `{%` and `%}` I would add this in my settings:
98
99```
100(), [], {}, "", '', {%%}
101```
102
103Then:
104
105`s % }`
106
107```
108Hello world -> {%Hello world%}
109```
110
111`s { %`
112
113```
114Hello world -> {% Hello world %}
115```
116
117### TODO
118
119- [x] Implement deleting surrounding pairs with `d s`
120- [x] Implement changing surrounding pairs with `c s`
121- [ ] Intelligent tag surrounding/deleting/replacing with `s <q>` and friends.