using vim surround plug-in
tools vim terminal hacks tips productivity
11 Oct 2015Installation:
I prefer using pathogen to manage my plug-ins all you have to do is clone the repo in the ~/.vim/bundle
directory and you are good to go.
git clone https://github.com/tpope/vim-surround.git
workflow:
There are different types of surrounding tags
- Quotes: single ‘ and double “, even backticks `
- Brackets: square [], curly {} and the usual ()
- Tags: mostly html opening and /closing
Surrounding words
Place the cursor within that word and type ysiw
followed by the desired container eg ysiw<em>
Yank(copy) surround to inner word
Using opening brackets adds spacing before and after word, while the closing ones don’t.
Try ysiw{
vs ysiw}
Removing surrounds
To remove them ds
+ surround depending on which type of quotes you used. e.g ds"
or ds{
Interchanging surrounds :
You can change ‘hello’ to “hello” by placing the cursor inside the word and typing cs'"
Which read change surround single-quotes to double-quotes you can interchange them.
That works for all other surrounds except tags e.g. <em>
For those you have to change them to another surround then back to your desired tag. So cst'
Change surround to single-quote then cs'<p>
Surrounding a selection in Visual mode.
Highlight the text you want to surround and type S
plus the desired end. e.g. S<em
on Hello world
will result in <em>Hello world</em>
The closing end will be placed on the next line.