Bagaimana cara membuat perintah `J` dan` gq` Vim menggunakan satu spasi setelah titik?

101

Saat saya menggunakan Jperintah Vim , sebagian besar baris digabungkan dengan satu spasi untuk padding. Tetapi setelah beberapa waktu, Vim selalu menggunakan dua spasi. Ambil contoh berikut:

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

Bagi saya, hasilnya adalah:

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

Satu spasi setelah koma, dua setelah titik. Ceritanya sama jika Anda memformat ulang paragraf dengan gqperintah.

Apakah ada pengaturan yang dapat saya ubah agar Vim hanya menggunakan satu spasi setelah titik?

nelstrom
sumber
1
Apakah ada yang mengerti alasan default ini?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
3
@CiroSantilli en.wikipedia.org/wiki/Sentence_spacing
Denilson Sá Maia
5
@ DenilsonSá: tldr; menempatkan dua spasi di antara kalimat dulu dianggap praktik terbaik, dan masih dilakukan oleh sebagian orang.
Flimm

Jawaban:

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.

Jadi, Anda akan melakukan a

:set nojoinspaces

untuk mendapatkan apa yang Anda inginkan.

Atau, Anda dapat mengubah pengaturan dengan

:set joinspaces!
René Nyffenegger
sumber
26

Anda harus :set nojoinspacesmenghilangkan spasi ganda. Dokumentasi di sini

Kevin Lacquement
sumber
3
Atau dalam .vimrc: hilangkan titik dua di depan:set nojoinspaces
Luc
10
:h 'joinspaces'

Setel opsi ini ke 0 / false / no.

Luc Hermitte
sumber