¿Cómo puedo hacer que los comandos `J` y` gq` de Vim usen un espacio después de un punto?

101

Cuando utilizo el Jcomando de Vim , la mayoría de las líneas se unen con un solo espacio para el relleno. Pero después de un período, Vim siempre usa dos espacios. Tome el siguiente ejemplo:

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 punto. La misma historia si reformatea el párrafo con el gqcomando.

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

Nelstrom
fuente
1
¿Alguien comprende el fundamento de este incumplimiento?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
3
@CiroSantilli en.wikipedia.org/wiki/Sentence_spacing
Denilson Sá Maia
5
@ DenilsonSá: tldr; poner dos espacios entre oraciones solía considerarse una buena práctica, y todavía lo es para algunas personas.
Flimm

Respuestas:

106
: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.

Entonces, harías un

:set nojoinspaces

para obtener lo que deseas.

Alternativamente, puede alternar la configuración con

:set joinspaces!
René Nyffenegger
fuente
26

Necesitas :set nojoinspacesdeshacerte del doble espacio. Documentación aquí

Kevin Lacado
fuente
3
O en .vimrc: omita los dos puntos iniciales:set nojoinspaces
Luc
10
:h 'joinspaces'

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

Luc Hermitte
fuente