Como posso fazer com que os comandos `J` e` gq` do Vim usem um espaço após um ponto?

101

Quando eu uso o Jcomando do Vim , a maioria das linhas são unidas com um único espaço para preenchimento. Mas depois de um período, o Vim sempre usa dois espaços. Veja o seguinte exemplo:

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

Para mim, o resultado é:

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

Um espaço após a vírgula, dois após o ponto final. Mesma história se você reformatar o parágrafo com o gqcomando.

Existe alguma configuração que eu possa modificar para que o Vim use apenas um espaço após o período?

Nelstrom
fonte
1
Alguém entende a razão para esse padrão?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
3
@CiroSantilli en.wikipedia.org/wiki/Sentence_spacing
Denilson Sá Maia
5
@ DenilsonSá: tldr; colocar dois espaços entre as frases costumava ser considerada a melhor prática, e ainda é por algumas pessoas.
Flimm de

Respostas:

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.

Então, você faria um

:set nojoinspaces

para obter o que deseja.

Como alternativa, você pode alternar a configuração com

:set joinspaces!
René Nyffenegger
fonte
26

Você precisa :set nojoinspacesse livrar do espaço duplo. Documentação aqui

Kevin Lacquement
fonte
3
Ou em .vimrc: omita os dois pontos iniciais:set nojoinspaces
Luc
10
:h 'joinspaces'

Defina esta opção como 0 / falso / não.

Luc Hermitte
fonte