Comment puis-je faire en sorte que les commandes `J` et` gq` de Vim utilisent un espace après un point?

101

Lorsque j'utilise la Jcommande de Vim , la plupart des lignes sont jointes avec un seul espace pour le remplissage. Mais après une période, Vim utilise toujours deux espaces. Prenons l'exemple suivant:

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

Pour moi, le résultat est:

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

Un espace après la virgule, deux après le point. Même chose si vous reformatez le paragraphe avec la gqcommande.

Y a-t-il un paramètre que je peux modifier pour que Vim n'utilise qu'un seul espace après le point?

Nelstrom
la source
1
Quelqu'un comprend-il la raison de ce défaut?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
3
@CiroSantilli en.wikipedia.org/wiki/Sentence_spacing
Denilson Sá Maia
5
@ DenilsonSá: tldr; mettre deux espaces entre les phrases était considéré comme la meilleure pratique, et c'est toujours le cas pour certaines personnes.
Flimm

Réponses:

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.

Alors, tu ferais un

:set nojoinspaces

pour obtenir ce que vous désirez.

Vous pouvez également basculer le paramètre avec

:set joinspaces!
René Nyffenegger
la source
26

Vous devez :set nojoinspacesvous débarrasser du double espace. Documentation ici

Kevin Lacquement
la source
3
Ou en .vimrc: omettez les deux points de début:set nojoinspaces
Luc
10
:h 'joinspaces'

Définissez cette option sur 0 / faux / non.

Luc Hermitte
la source