Emacs. Change inner/outer like in Vim
If you’re a former Vim user there is one feature I couldn’t find in any other editors.
Not sure what is the proper name of it but let’s call it change inside something.
Example (| - is a cursor):
function() {
return 'hello |world'
}
If I press ci' the result is going to be:
function() {
return '|'
}
or ci{:
function() {|}
That’s incredibly useful feature because I don’t really need to think where my cursor is. I just place it somewhere around the place I need to remove and press that magical keybinding.
There is no such built-in function in Emacs. And this one is probably the only feature I miss the most.
For some time I’ve been using expand-region by Magnar Sveen
which is a different thing really. It just expands a selection by some logical semantic blocks and can be used
as a replacement to that ci'.
But still I need to think how many times I should call that expand-region function before the thing I need is selected.
So today I discovered change-inner.el by already mentioned Magnar Sveen.
It uses expand-region internally and does exactly what ci<symbol> does.
Bindings suggested in the package readme, M-i / M-o, are pretty easy to used to.
So if you ever missed that change inner/outer Vim feature give this lib a shot.
Feel free to contact me for feedback or questions. Find my contacts on About page.