2012-02-28 31 views
10

Estoy usando el asombroso plugin https://github.com/tpope/vim-surround para rodear palabras con paréntesis, por ejemplo, a menudo uso: viws<space><space> para rodear una palabra con espacios.Eliminar el espacio en blanco circundante en vim

Lo que me falta es lo opuesto a esto, es decir, eliminar espacios circundantes alrededor de una palabra.

El uso más común para mí son los argumentos de función como foo (barra) vs foo (barra) dependiendo del estilo del código.

¿Alguien sabe una buena manera de hacer esto?

+0

¿Tiene '' ds trabajar? El archivo README proporciona 'ds" 'como mecanismo para eliminar los delimitadores' "' en un ejemplo. – sarnold

+0

No desafortunadamente. Buena observación sin embargo. –

+1

Me parece gracioso que encuentre el comando 'viws ' para ser una solución más simple que todas las alternativas, incluido el uso de las teclas de flecha y el retroceso. – puk

Respuesta

11

Nota: Esta solución requiere el complemento de sonido envolvente al que se hace referencia en la pregunta.

Para su situación específica que podría hacer lo siguiente:

cs() 

Esto cambia a foo(bar)foo(bar), sin embargo, no es una solución general a su problema.

+1

tipo de elegante ... raro pero elegante :) –

+0

¿Qué se supone que debe hacer? No hace nada por mí – puk

+1

Si no tiene el complemento surround indicado en el OP, entonces no hará lo que se espera.Con sonido envolvente, 'csXY' dice" cambiar los caracteres circundantes X con los caracteres Y circundantes ", el' ('se define como" paréntesis circundante con un espacio de relleno ", y' '' se define como "paréntesis circundantes sin relleno" espacio". –

3

Tal vez solo BXElx en modo normal.

+0

o 'BXf x' – puk

4

A menudo procrastino procrastinate en busca de plugins de vim también, cuando podría definir un mapeo para esto.

nnoremap <leader>dd F<space>xf<space>x 

EDITAR más información

  • <leader> clave común para las asignaciones definidas por el usuario (, es un buen uno)

  • dd combinación a utilizar (cualquier otro mnemónico será suficiente)

  • .210 búsqueda hacia atrás para un espacio, luego lo elimina

  • f<space>x de búsqueda hacia delante para un espacio, luego lo elimina

+0

jaja ... sí ... :) –

1

De hecho, la solución perfecta para mí es la cartografía proporcionada por @puk, pero utilizando el Las claves @sarnold esperaban en primer lugar (lo que uno esperaría del plugin surround si implementaba esto).

Esto es:

nnoremap ds<space> F<space>xf<space>x 
Cuestiones relacionadas