Jak mogę sprawić, by polecenia `J` i` gq` Vima używały jednej spacji po kropce?


101

Kiedy używam Jpolecenia Vima , większość linii jest łączona pojedynczą spacją do wypełnienia. Ale po pewnym okresie Vim zawsze używa dwóch spacji. Weźmy następujący przykład:

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

Dla mnie wynik to:

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

Jedna spacja po przecinku, dwie po kropce. Ta sama historia, jeśli ponownie sformatujesz akapit za pomocą gqpolecenia.

Czy istnieje ustawienie, które mogę zmodyfikować, aby Vim używał tylko jednej spacji po kropce?


1
Czy ktoś rozumie uzasadnienie tego domyślnego?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功


5
@ DenilsonSá: tldr; umieszczanie dwóch spacji między zdaniami było kiedyś uważane za najlepszą praktykę i przez niektórych nadal jest.
Flimm

Odpowiedzi:


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.

Więc zrobiłbyś

:set nojoinspaces

aby uzyskać to, czego pragniesz.

Alternatywnie możesz przełączyć ustawienie za pomocą

:set joinspaces!


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.