Introduce vim surround keymappings

machakann edited this page Oct 27, 2017 · 6 revisions

Introduce vim-surround keymappings

If you want to use with vim-surround keymappings, add the following line to your vimrc.

runtime macros/sandwich/keymap/surround.vim

ys, yss, yS, ds, cs in normal mode and S in visual mode are available. Not in vim-surround, but dss and css are also available, these are similar as ds and cs but determine deleted/replaced texts automatically. See the file directly for detail.


NOTE that the vim-sandwich plugin should be in 'runtimepath' option when the :runtime command is executed. If you are using a kind of plugin managers, like Vundle, plug or neobundle, the :execute command should pe placed after vundle#end()/plug#end()/neobundle#end() in your vimrc.

vundle#begin()
~~~
Plugin 'machakann/vim-sandwich'
~~~
vundle#end()
runtime macros/sandwich/keymap/surround.vim

Or just use :source command instead.

source {full/path/to}/macros/sandwich/keymap/surround.vim

Please change {full/path/to} part for your environment.

Textobjects

Additionally, vim-sandwich provides several textobjects. They would also be helpful, give it a try!

Textobjects to select a text surrounded by braket or same characters user input.

xmap is <Plug>(textobj-sandwich-query-i)
xmap as <Plug>(textobj-sandwich-query-a)
omap is <Plug>(textobj-sandwich-query-i)
omap as <Plug>(textobj-sandwich-query-a)
  • Examples
   |<---- is( ---->|
{[(a_surrounded_text)]}
  |<----- as( ----->|

  |<----- is[ ----->|
{[(a_surrounded_text)]}
 |<------ as[ ------>|

 |<------ is{ ------>|
{[(a_surrounded_text)]}
|<------- as{ ------->|

     |<  is_ >|
{[(a_surrounded_text)]}
    |<-  as_ ->|

Textobjects to select the nearest surrounded text automatically.

xmap iss <Plug>(textobj-sandwich-auto-i)
xmap ass <Plug>(textobj-sandwich-auto-a)
omap iss <Plug>(textobj-sandwich-auto-i)
omap ass <Plug>(textobj-sandwich-auto-a)
  • Examples
   |<---- iss ---->|
{[(a_surrounded_text)]}
  |<----- ass ----->|

   |<---- iss ---->|
({[a_surrounded_text]})
  |<----- ass ----->|

   |<---- iss ---->|
[({a_surrounded_text})]
  |<----- ass ----->|

Textobjects to select a text surrounded by same characters user input.

xmap im <Plug>(textobj-sandwich-literal-query-i)
xmap am <Plug>(textobj-sandwich-literal-query-a)
omap im <Plug>(textobj-sandwich-literal-query-i)
omap am <Plug>(textobj-sandwich-literal-query-a)
  • Examples
     |<  im_ >|
{[(a_surrounded_text)]}
    |<-  am_ ->|

See also Braket with spaces.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.