Mengapa saya tidak bisa menghentikan vim membungkus kode saya?

115

Saya tidak bisa menghentikan vim membungkus kode Python saya. Jika saya masuk :set nowrapseperti seorang juara, tetapi masih membungkus.

Saya dapat menekan Juntuk menyatukan baris kode yang terpisah, jadi sepertinya carriage return yang sebenarnya sedang dimasukkan. Saya hanya tidak mengerti mengapa atau bagaimana menghentikannya.

David Berger
sumber
15
:set nowraphanya mencegahnya dari membungkus tampilan garis, bukan dari menyisipkan penggalan baris.
rampion

Jawaban:

115
'textwidth' 'tw'        number  (default 0)
                        local to buffer
                        {not in Vi}
        Maximum width of text that is being inserted.  A longer line will be
        broken after white space to get this width.  A zero value disables
        this.  'textwidth' is set to 0 when the 'paste' option is set.  When
        'textwidth' is zero, 'wrapmargin' may be used.  See also
        'formatoptions' and |ins-textwidth|.
        When 'formatexpr' is set it will be used to break the line.
        NOTE: This option is set to 0 when 'compatible' is set.


'wrapmargin' 'wm'       number  (default 0) 
                        local to buffer
        Number of characters from the right window border where wrapping
        starts.  When typing text beyond this limit, an <EOL> will be inserted
        and inserting continues on the next line.
        Options that add a margin, such as 'number' and 'foldcolumn', cause
        the text width to be further reduced.  This is Vi compatible.
        When 'textwidth' is non-zero, this option is not used. 
        See also 'formatoptions' and |ins-textwidth|.  {Vi: works differently
        and less usefully}

Jika Anda mengacu pada pembungkusan otomatis garis panjang yang mengirimnya ke yang berikutnya, coba

:set textwidth=0 
:set wrapmargin=0
Stefano Borini
sumber
12
Beberapa plugin tampaknya menggantikan pengaturan ini.
Yzmir Ramirez
The twdan wppilihan tidak benar-benar bekerja untuk saya jadi saya harus pergi untuk formatoptions github.com/ain/.vim/blob/...
Ain Tohvri
2
Jika tw dan wp masih belum menyelesaikan masalah, lihat posting ini di SU yang membantu saya menyelesaikan masalah saya: superuser.com/questions/250112/…
Alien_SM
3
Menghapus filetype plugin ondari saya .vimrcmelakukannya untuk saya.
1
Dengan jawaban ini, Anda tidak dapat menggunakan gquntuk menyetel ulang paragraf secara manual ke lebar teks. @ Engineero seharusnya yang benar.
Dylanthepiguy
87

Tidak ada jawaban lain yang berhasil untuk saya (IDK mengapa).

:set wrap! Melakukan trik untuk saya (menggunakan GVim untuk Windows).

Knomo Seikei
sumber
8
Ini memecahkan masalah yang sedikit berbeda. wrapmemberikan tampilan pembungkusan baris, tetapi tidak benar - benar memecah teks menjadi baris baru. Sepertinya Anda telah wrapmengaktifkannya, jadi :set wrap!matikan. Anda dapat memeriksa dengan :set wrap?mana yang akan menggemakan nilai saat ini (yaitu wrapatau nowrap).
shadowtalker
1
Solusi ini berfungsi untuk saya di Mac OsX. Vim versi 7.4
Shnkc
Ini berhasil untuk saya, saya mengubahnya textwidthdan wrapmarginpertama - tama tetapi ini benar-benar memaksa vim untuk memperbarui dan merender tanpa garis yang dibungkus.
Kredns
Ding din ding! Bekerja di neovim
Gjaa
Sungguh momen yang ajaib ketika Anda mengetahui bahwa perintah yang benar-benar Anda butuhkan sangat ekspresif dan sederhana. Thanks devs
Capitan Empanada
57

set formatoptions-=tharus melakukan triknya. set formatoptions+=takan mengaktifkan pembungkusan otomatis kembali.

Untuk informasi lebih lanjut tentang apa yang dapat Anda lakukan dengan formatoptions, lihat dokumen .

Engineero
sumber
2
Terima kasih! Solusi Anda adalah satu-satunya yang berhasil untuk saya. Kadang-kadang vim tidak lagi menyisipkan baris baru ketika saya memasuki mode penyisipan.
Geremia
2
Ya. Inilah solusi sebenarnya.
Russ Bateman
16

Untuk mencegah vim membungkus garis panjang saya menggunakan dua baris ini di .vimrc:

set nowrap           " do not automatically wrap on load
set formatoptions-=t " do not automatically wrap text when typing
gon1332
sumber
12

Untuk menonaktifkan bungkus baris, Anda dapat memasukkan :set wrap!atau menambahkan perintah ini ke file ~/.vimrc.

Mapsy
sumber
2
Ini tidak memengaruhi penyisipan otomatis jeda baris nyata, yang menjadi pokok pertanyaan ini.
Arthur Tacca
9

Mungkin textwidth yang disetel, yang secara otomatis memutus baris ketika mencapai panjang tertentu. Coba

:set tw=0

Jika gagal, mainkan dengan mis

:set wrap linebreak textwidth=0 

dan

:set virtualedit=insert
no
sumber
2
wrap dan linebreak tidak memasukkan end-of-lines yang sebenarnya ke dalam buffer, jadi itu sepertinya bukan masalahnya.
A. Levy
0

Buka vimrc_example.vim (Ya, ini adalah file di Vim74) dan setel textwidth = 0.

Polisi
sumber
0

Di macbook pro saya mengungguli di .vimrc baris

autocmd FileType text setlocal textwidth=78

jadi itu menjadi

"  autocmd FileType text setlocal textwidth=78

.

(Saya menginstal versi vim melalui homebrew.) Ini membantu semua file .txt.

feli_x
sumber