Neden vim'in kodumu sarmalamasını engelleyemiyorum?


116

Vim'in Python kodumu sarmalamasını engelleyemiyorum. Ben girerseniz :set nowrapbir şampiyon gibi, ama yine de sarar.

JBölünmüş kod satırlarını birleştirmek için vurabilirim , bu yüzden gerçek bir satır başı ekleniyor gibi görünüyor. Sadece neden veya nasıl durdurulacağını anlamıyorum.


15
:set nowrapsatır sonu eklemesini değil, yalnızca satırların görüntüsünü kaydırmasını engeller.
rampion

Yanıtlar:


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}

Uzun satırların otomatik olarak kaydırılarak bir sonrakine gönderilmesinden bahsediyorsanız, şunu deneyin:

:set textwidth=0 
:set wrapmargin=0

12
Bazı eklentiler bu ayarı geçersiz kılıyor gibi görünüyor.
Yzmir Ramirez

twVe wpben gitmek zorunda seçenekleri gerçekten benim için iş vermedi formatoptions github.com/ain/.vim/blob/...
Ain Tohvri

2
Tw ve wp hala sorunu çözmezse, SU'daki bu
gönderiye

3
Çıkarma filetype plugin onne biz den .vimrcbenim için yaptı.

1
Bu cevapla, gqparagrafı manuel olarak metin genişliğine yeniden hizalamak için kullanamazsınız . @ Engineero's doğru olanı olmalıdır.
Dylanthepiguy

86

Diğer cevapların hiçbiri benim için işe yaramadı (IDK neden).

:set wrap! Benim için hile yaptım (Windows için GVim kullanarak).


8
Bu biraz farklı bir sorunu çözer. wraphat sarma görünümünü sağlar, ancak vermez aslında yeni hatlar üzerine metni bölünürler. Muhtemelen wrapetkinleştirmişsinizdir, bu yüzden :set wrap!kapattınız. :set wrap?Mevcut değeri (yani wrapveya nowrap) hangisinin yansıtacağını kontrol edebilirsiniz .
shadowtalker

1
Bu çözüm benim için Mac OsX'te çalışıyor. Vim sürüm 7.4
Shnkc

Bu, benim için çalıştı Değiştim textwidthve wrapmarginilk ama bu aslında herhangi sarılı çizgileri olmadan güncelleme ve rerender için vim zorladı.
Kredns

Ding din ding! Neovim'de çalışır
Gjaa

Gerçekten ihtiyacınız olan komutun çok etkileyici ve basit olduğunu öğrendiğinizde ne kadar büyülü bir an. Teşekkürler geliştiriciler
Capitan Empanada

57

set formatoptions-=thile yapmalı. set formatoptions+=totomatik kaydırmayı tekrar açacak.

Yapabilecekleriniz hakkında daha fazla bilgi için dokümanlaraformatoptions bakın .


2
Teşekkür ederim! Çözümünüz benim için işe yarayan tek çözümdür. Artık vim, ekleme moduna girdiğimde bazen yeni satır eklemiyor.
Geremia

2
Evet. Bu gerçek çözüm.
Russ Bateman

16

Vim'in uzun satırları kaydırmasını önlemek için şu iki satırı kullanıyorum .vimrc:

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

12

Satır kaydırmayı devre dışı bırakmak için :set wrap!bu komutu girebilir veya ~/.vimrc.


2
Bu, bu sorunun hakkında olduğu gerçek satır sonlarının otomatik olarak eklenmesini etkilemez.
Arthur Tacca

9

Belki de ayarlanan metin genişliğidir ve belirli bir uzunluğa ulaştığında satırları otomatik olarak keser Deneyin

:set tw=0

Bu, örneğin ile oynamak başarısız olursa

:set wrap linebreak textwidth=0 

ve

:set virtualedit=insert

2
wrap ve linebreak gerçek satır sonlarını arabelleğe eklemez, dolayısıyla bu onun sorunu gibi görünmüyor.
A. Levy


0

Vimrc_example.vim'i açın (Evet, bu Vim74'teki dosyadır) ve textwidth = 0 olarak ayarlayın.


0

Macbook pro'da .vimrc satırını geride bıraktım

autocmd FileType text setlocal textwidth=78

böylece oldu

"  autocmd FileType text setlocal textwidth=78

.

(Homebrew aracılığıyla bir vim sürümü kurdum.) Bu, tüm .txt dosyaları için yardımcı oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.