Vim'de satır kesmeyi durdurma


257

Uzun hatların birden fazla terminal hattı üzerinde gösterilmesini seviyorum; Bu vimin gerçek metnime yeni satırlar eklemesini sevmiyorum. .Vimrc'nin hangi bölümünü değiştirmeliyim?


7
Anlaşılır olması için: uzun çizgilerin birden fazla terminal çizgisinde görüntülenmesini seversiniz; vim'in gerçek metninize yeni satırlar eklemesini sevmiyor musunuz? Eğer öyleyse, o :set nowrapzaman istediğiniz şeyin tam tersidir :(.
Andrew Aylett

@Andrew: evet özetiniz tam olarak istediğim şey
Haiyuan Zhang

Yanıtlar:


304

kullanım

:set wrap

Çizgileri görsel olarak sarmak için, yani çizgi hala bir metin satırıdır, ancak Vim birden çok satırda görüntüler.

kullanım

:set nowrap

Uzun satırları tek bir satır olarak görüntülemek için (yani, tüm satırı görmek için yatay olarak kaydırmanız gerekir).


3
Tavsiyeleriniz için teşekkürler çocuklar. İle gittim: set nowrap ve: set textwidth = 0 harika çalışıyor
Robert Beltran

5
Ne zaman yazarken hala "görsel" 80 sütun sınırı görmek istiyorum ve ben 80th colomn sonra yazarken vim otomatik satır besleme eklemek istemiyorum. Nasıl yaparım?
Olivier Pons

7
Aradığım cevap tam olarak bu, ama OP'nin sorusunun cevabı değil. Bunun en iyi cevap olması biraz yanıltıcıdır. Bu durumu nasıl düzeltebileceğimi bilmiyorum. Sadece orijinal soruyu cevaplamak için cevabınızı düzenlerdim. Ancak zaten neredeyse yüksek oy kullanan doğru bir cevap var. Bu yüzden iki cevabı değiştirmek için oy kullandım.
Daniel Darabos

3
Bu tam olarak benim oldu cevaptır değil arayan ve bu kadar değil OP'ın sorunun cevabı.
peeol

Bu sorunun cevabı değil.

194

Uzun hatların birden fazla terminal hattı üzerinde gösterilmesini seviyorum

Bu tür görsel / sanal satır kaydırma, wrappencere seçeneğiyle etkinleştirilir :

set wrap

Bu vimin gerçek metnime yeni satırlar eklemesini sevmiyorum.

Fiziksel satır kaydırmayı kapatmak için hem textwidthve wrapmarginarabellek seçeneklerini temizleyin :

set textwidth=0 wrapmargin=0

1
Teşekkürler! set textwidth=0 wrapmargin=0çalışır, ancak içine koyarsam .vimrc, örneğin düz metin dosyaları için bir etkisi yoktur. Üzerine yazmayı nasıl bulabilir ve ortadan kaldırabilirim?
qubodup

7
@qubodup Sorunun görüldüğü ve girdiği bir dosyayı açarak .vimrc ayarınızın üzerine bir şey yazıp yazmadığını test edebilirsiniz :verbose set textwidth? wrapmargin?. Bu size mevcut değerlerini ve nerede ayarlandıklarını söyleyecektir. Onları geçersiz kılan bir eklentiniz olabilir. Bu durumda, bu eklentiyi kaldırabilir veya eklenti ayarını daha sonra çalışma zamanınızda (örn. ~/.vim/after) Veya kendi otomatik komutunuzla geçersiz kılmayı deneyebilirsiniz . Doğru yaklaşım, nerede / nasıl sıfırlandığına bağlı olacaktır.
Laurence Gonsalves

set wrapve set linebreakbunu benim için yaptı.
Ilia Choly

36

Tamamen anladığımdan emin değilim, ancak 'formatoptions' yapılandırma ayarını arıyor olabilirsiniz. Gibi bir şey deneyin :set formatoptions-=t. Bu tseçenek, metin tarafından ayarlanan genişlikte kaydırma yapmak için satır sonları ekler textwidth. Ayrıca bu komutu koyabilirsiniz .vimrc, iki nokta üst üste ( :) kaldırmak .


3
Bu bana OP'nin dileğini ele almak için en iyi seçenek gibi görünüyor. Vim'in hala dikey bir çizgi göstermesi hoşuma gidiyor tw.
mitchus

3
OP'nin sorusunu ele alan tek cevap bu. Diğerleri ise tam tersini yapar. OP hala uzun satırların etrafına sarılmış olarak görüntülenmesini istiyor, ancak vim'in satır sonlarını otomatik olarak eklememesini istiyor.
sebastian

33

Kullanın :set nowrap.. bir cazibe gibi çalışır!


10
OP'nin istenen davranış olarak tanımladığı şeyin tersini yapması dışında ...: P
Morlock

5
@Morlock, ama sahip olduğum soruyu cevaplar ve google beni buraya getirdi :)
Ben Usman

bunun için herhangi bir klavye kısayolu var mı?
Pini Cheyni

@PiniCheyni .vimrc dosyanıza ekleyin: nnoremap <Cw>: set invwrap <CR> Ardından metin kaydırmayı değiştirmek için Ctrl + W tuşlarını kullanabilirsiniz.
reas0n

30

:set tw=0

VIM satır sonlarını otomatik olarak eklemez, ancak satır kaydırmaya devam eder.


3
Ben tam tersini istiyorum ... ben yazarken hala "görsel" 80 sütun sınırı görmek istiyorum ve ben 80th colomn sonra yazarken vim otomatik satır besleme eklemek istemiyorum. Nasıl yaparım?
Olivier Pons

16

set lbrYararlı bulabilirsiniz ; bununla set wrapsarılır, ancak bir kelimenin ortasında değil, yalnızca boşlukta çizgi keser.

Örneğin

without lbr the li
ne can be split on
a word

ve

with lbr on the
line will be
split on 
whitespace only

Highlly gelecekte size yardım sisteminde bir arama yerleşmiş anlamaya yapmak zorunda çünkü seçenekleri abbreviating önlemek böylece kullanılması önerilir set nolinebreakyerineset lbr
SergioAraujo

12

set formatoptions-=t Görsel metin genişliğini korur, ancak ekleme modunda yeni satır eklemez.


4

Böylesine basit bir ortamın çalışması için bu miktarda 'hocus-pocus' gerektirmesi garip.

Sorunuzu şimdi cevaplamak için, benim için aşağıdakilerin kombinasyonu ile çalışıyor gibi görünüyordu:

:set wrap linebreak nolist

(bu, mevcut çizgilerin kırılmasını önlüyor gibi görünüyor, sadece sarın.)

VE

set formatoptions=l

(bu, yeni / düzenlenmiş satırların kesilmesini önler, ancak + = benim için yapmaz, çünkü diğer ayarlar / eklentiler alan bulur ve benimkini geçersiz kılan kendi seçeneklerini ekler.)


4

Benim gibi, Windows'ta gVim çalıştırıyorsanız, .vimrc dosyanız metin dosyaları için otomatik olarak ayarlanan textwidth(benim durumumda 78) başka bir 'örnek' Vimscript dosyası kaynaklıyor olabilir .

Buna benzer bir soruya cevabım - Sütun 80'de gVim sarma metninin durdurulması - Vi ve Vim Stack Exchange sitesinde :

Benim durumumda, Vitor'nin yorumu aşağıdakileri çalıştırmamı önerdi:

:verbose set tw?

Bunu yapmak bana şu çıktıyı verdi:

textwidth=78
      Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim

In vimrc_example.vim ben ilgili satırları bulundu:

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  ...

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  ...

Ve buldum .vimrc bu dosyayı kaynak:

source $VIMRUNTIME/vimrc_example.vim

Benim durumumda, textwidthherhangi bir dosya için ayarlanmak istemiyorum , bu yüzden sadece vimrc_example.vim içinde ilgili satırı yorum yaptım .


1
Vimrc_example.vim dosyasını düzenlemek yerine, vimrc dosyasına yeni ekledim autocmd FileType text setlocal textwidth=0ve önerilen diğer çözümler olmadığında sorunu düzelttim.
GrandAdmiral

3

Set nowrap'ın vi / vim satırları eklemeden uzun bir satıra yapıştırmanıza izin vereceği doğrudur , ancak daha sonra kolay okuma için satır görsel olarak sarılmaz . Bunun yerine, kaydırmanız gereken tek bir uzun satırdır.

Satırın görsel olarak sarılması ancak içine yeni satır karakterleri eklenmemiş olması için, sarmayı ayarlamanız (muhtemelen varsayılan olarak ayarlanması gerekmez) ve textwidth = 0'ı ayarlamanız gerekir .

Bazı sistemlerde textwidth = 0 ayarı varsayılan değerdir . Bu durumda bulamazsanız, tüm vi / vim oturumları için kullanıcı varsayılanı olacak şekilde .exrc dosyanıza set textwidth = 0 değerini ekleyin.

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.