Wie kann ich dafür sorgen, dass Vims "J" - und "gq" -Befehle nach einem Punkt ein Leerzeichen verwenden?

100

Wenn ich den JBefehl von Vim verwende , werden die meisten Zeilen mit einem einzigen Leerzeichen zum Auffüllen verbunden. Aber nach einer gewissen Zeit verwendet Vim immer zwei Leerzeichen. Nehmen Sie das folgende Beispiel:

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

Für mich ist das Ergebnis:

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

Ein Leerzeichen nach dem Komma, zwei nach dem Punkt. Gleiche Geschichte, wenn Sie den Absatz mit dem gqBefehl neu formatieren .

Gibt es eine Einstellung, die ich ändern kann, damit Vim nach dem Zeitraum nur ein Leerzeichen verwendet?

Nelstrom
quelle
1
Versteht jemand die Gründe für diese Standardeinstellung?
Ciro Santilli 法轮功 冠状 病 六四 事件 23
3
@CiroSantilli en.wikipedia.org/wiki/Sentence_spacing
Denilson Sá Maia
5
@ DenilsonSá: tldr; Das Setzen von zwei Leerzeichen zwischen Sätzen galt früher als bewährte Methode, und einige Leute tun dies immer noch.
Flimm

Antworten:

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

Also würdest du eine machen

:set nojoinspaces

um zu erhalten, was Sie wünschen.

Alternativ können Sie die Einstellung mit umschalten

:set joinspaces!
René Nyffenegger
quelle
26

Sie müssen :set nojoinspacesden doppelten Raum loswerden. Dokumentation hier

Kevin Lacquement
quelle
3
Oder in .vimrc: den führenden Doppelpunkt weglassen:set nojoinspaces
Luc
10
:h 'joinspaces'

Setzen Sie diese Option auf 0 / false / no.

Luc Hermitte
quelle