Skip to content

briandoll/change-inside-surroundings.vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

change-inside-surroundings.vim

change-inside-surroundings.vim provides a single command :ChangeInsideSurrounding (also accessible via <leader>ci) that will change the contents of the innermost 'surrounding'.

Examples

Vim already provides fairly easy ways to change the 'surrounding' as long as you specify the opening 'surrounding' character. Vim also understands HTML and XML tags, so you can change inside those as well. I wanted a single command that would intelligently just do the right thing.

Normal Vim can do this:

Change inside an HTML tag:

  • Given: <div>London Calling</div>
  • To replace the contents of the div tag I can use: cit

Change inside curly braces:

  • Given: { death: "or glory!" }
  • To replace the contents of the curly braces I can use: ci{

Change inside brackets:

  • Given: [ Clampdown those Spanish Bombs ]
  • To replace the contents of the square brackets I can use: ci[

Change inside quotes:

  • Given: "The Guns of Brixton"
  • To replace the contents of the quotes I can use: ci"

I wanted something simpler. This plugin provides a single command that works for all of these examples.

Currently supported surroundings are: {}, (), "", ><, [], '', ``

Use

:ChangeInsideSurrounding or <leader>ci will remove the contents of the innermost 'surrounding', leaving you in insert mode.

:ChangeAroundSurrounding or <leader>cas will remove the entire text object, including the 'surrounding' characters, leaving you in insert mode.

Installation

If you're using pathogen.vim, just copy and paste:

cd ~/.vim/bundle
git clone git://github.com/briandoll/change-inside-surroundings.vim.git

License

Copyright (c) Brian Doll. Distributed under the same terms as Vim itself. See :help license