2011-01-21 9 views
72

Cuando uso el comando J de Vim, la mayoría de las líneas se unen con un espacio único para el relleno. Pero después de un período, Vim siempre usa dos espacios. Tomemos el siguiente ejemplo:¿Cómo puedo hacer que los comandos `J` y` gq` de Vim utilicen un espacio después de un período?

This ends with a comma, 
but this ends with a period. 
Join with 'J' and what do you get? 

Para mí, el resultado es:

This ends with a comma, but this ends with a period. Join with 'J' and what do you get? 

un espacio después de la coma, dos después del período. La misma historia si vuelve a formatear el párrafo con el comando gq.

¿Hay alguna configuración que pueda modificar para que Vim use solo un espacio después del período?

+0

¿Alguien entiende la razón de este defecto? –

+1

@CiroSantilli http://en.wikipedia.org/wiki/Sentence_spacing –

+3

@ DenilsonSá: tldr; poner dos espacios entre oraciones solía considerarse una mejor práctica, y todavía lo es para algunas personas. – Flimm

Respuesta

79
:help joinspaces 


'joinspaces' 'js' boolean (default on) 
      global 
      {not in Vi} 
    Insert two spaces after a '.', '?' and '!' with a join command. 
    When 'cpoptions' includes the 'j' flag, only do this after a '.'. 
    Otherwise only one space is inserted. 
    NOTE: This option is set when 'compatible' is set. 

Por lo tanto, usted haría un

:set nojoinspaces 

para obtener lo que desea.

Alternativamente, se puede cambiar la configuración con

:set joinspaces! 
9
:h 'joinspaces' 

Establezca esta opción en 0/falso/no.

24

Necesita :set nojoinspaces para deshacerse del doble espacio. Documentation here

+1

O en .vimrc: omita los dos puntos principales: 'set nojoinspaces' – Luc

Cuestiones relacionadas