Как я могу заставить команды Vim `J` и` gq` использовать один пробел после точки?


102

Когда я использую Jкоманду Vim , большинство строк объединяются одним пробелом для заполнения. Но после определенного периода Vim всегда использует два пробела. Возьмем следующий пример:

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

Для меня результат:

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

Один пробел после запятой, два после точки. Та же история, если вы переформатируете абзац с помощью gqкоманды.

Есть ли параметр, который я могу изменить, чтобы Vim использовал только один пробел после точки?


1
Кто-нибудь понимает причину этого дефолта?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功


5
@ DenilsonSá: tldr; вставка двух пробелов между предложениями раньше считалась лучшей практикой, и некоторые люди до сих пор так считают.
Flimm

Ответы:


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

Итак, вы бы сделали

:set nojoinspaces

получить желаемое.

Кроме того, вы можете переключить настройку с помощью

:set joinspaces!


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.