1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# Vim Surround for Atom [](https://travis-ci.org/gepoch/vim-surround)
Surround is an implementation of vim-surround for the [atom](http://atom.io)
editor, creating a vim-surround with the power of Atom!
You should definitely have [vim-mode](https://atom.io/packages/vim-mode) for
this package to function properly, of course.
Inspiration from and kudos to the wonderful [vim-surround for
vim](https://github.com/tpope/vim-surround)
See vim-surround on [github](https://github.com/gepoch/vim-surround) or
[atom.io](https://atom.io/packages/vim-surround).
## 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](https://atom.io/packages/vim-mode-next). See
[#28](https://github.com/gepoch/vim-surround/issues/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
- [x] Implement deleting surrounding pairs with `d s`
- [x] Implement changing surrounding pairs with `c s`
- [ ] Intelligent tag surrounding/deleting/replacing with `s <q>` and friends.
|