girintili vim çizgi sarma


20

Vim / gvim şu gibi uzun satırları sarar:

000000000000000000000000000000000000|
00000000000000                      |
    11111111111111111111111111111111|
111111111111111111                  |
    22222222222222222222222222222222|
222222222222222222                  |
        3333333333333333333333333333|
3333333333333333333333              |

Bunun yerine Vim'in bu satırları sarmasını sağlamanın bir yolu var mı:

000000000000000000000000000000000000|
 00000000000000                     |
    11111111111111111111111111111111|
     111111111111111111             |
    22222222222222222222222222222222|
     222222222222222222             |
        3333333333333333333333333333|
         3333333333333333333333     |

Sarılı çizginin, o çizginin başladığı girintinin biraz ötesine geçmesini istiyorum. (Sadece net olmak gerekirse, metin genişliğinden değil sargıdan bahsediyorum.)

Kod yapısının sarılmış çizgilerle gizli olmaması için satırın girintisinin bu satırın kaydırılmasında dikkate alınmasını istiyorum.

Yanıtlar:


17

GÜNCELLEME: Bu işlev 7.4.354 veya sonraki sürümlerini isteyecek olsanız da 7.4.338 sürümüne inmiştir .


Görünüşe göre bu Vim için bir yama gerektirir . 2007 yılında Vaclav Smilauer tarafından bir yama var . Yamayı Fedora 11'den Vim 7.2.148 ile çalışacak şekilde güncelledim. Ama bu işi yapıyor gibi görünüyor.


1
Fedora Vim güncellemelerini yayınlarken yamayı güncelliyorum. En son bilgiler için retracile.net/wiki/VimBreakIndent adresine bakın .
çekilebilir

Bonus, bunun MacVim ile çalışmasını nasıl sağlayacağını açıklayabilecek birine işaret ediyor.
Donut

Yama nerede? Bu site görebildiğim herhangi bir bağlantı yok
puk

@puk: Üzgünüz, önemli bir yazılım güncellemesi bazı bağlantı konumlarını değiştirmişti. Bunları şimdi düzelttim.
çekilme

1
Bugün itibarıyla (25 Haziran 2014), kopuk yama resmi olarak Vim 7.4'ün bir parçasıdır - yama 338 ve 345 tarafından eklenir.
Heptite

14

.Vimrc dosyanızda:

set wrap               " soft-wrap lines

" requires +linebreak compile-time option (not in the 'tiny' and 'small' builds); check your :version
set showbreak=----->   " prefix for soft-wrapped lines (no actual line break character)
"set linebreak          " soft-wrap lines only at certain characters (see :help breakat)

" If you like line numbers, you may want this instead:
"set number
"set showbreak=------>\  " line up soft-wrap prefix with the line numbers
"set cpoptions+=n        " start soft-wrap lines (and any prefix) in the line-number area

Veya :set showbreak=----->herhangi bir oturumu yazın.

Referans olarak, araştırma izim (Vim 6.2): :help 'wrap'-> :help 'linebreak'-> ( :help 'showbreak'-> :help 'cpoptions', :help 'breakat')


Çok güzel, ama aslında ne demek istediğimi değil. Bulduğumdan biraz daha fazla anlamıştınız, bu yüzden benim hatam var. Açıklayabilir miyim bakacağım.
15'te geri çekilebilir

1

Sorunuzun çözümü, aşağıdaki iki parametreyi ayarlayarak elde edilebilir vimrc:

Aynı girinti ile çizgileri kırmak için: set breakindent

Ve yumuşak sarılı çizgileri girintilendirmek için bir alan: let &showbreak=' '

Bu şekilde çalışacaktır:

111111111111111|
 11111111111111|
 11111         |
222222222222222|
 222222222222  |
333333333333333|
 33333         |

0

Aradığınız mükemmel cevap değil, ama vim'in uygun girinti eksikliğini aşmak için yaptığım şey.

İlk olarak, hangi genişlik düzeyini yalnızca 2 boşluk olarak ayarlayabileceğinize kadar, hangi girinti düzeyini gösterdiğini daha iyi gösterdiğinden , Nathanael Kane'in girinti kılavuzunu (isteğe bağlı) indirin!

İkinci olarak, kelime kaydırmayı değiştirmek için bir tuş kombinasyonunu eşleyin. Benim 'sarmak' için 'r' ('w' kaydetmek içindir) için ayarlanmış var gibi

:noremap <leader>r :set nowrap! <CR>

O zaman her zaman kelime sarmalım var, çünkü daha estetik olarak hoş ve çizgiyi düzenlemem gerekirse hızlı bir şekilde açıyorum.


0

Şu anda kullandığım faul "geçici çözüm" öneki sabit ama büyük bir girinti olması. Bu sabit girinti, sarılmış çizginin girintisinden daha büyük olduğu sürece, çoğu zaman durum böyle görünüyor.

" 'showbreak'   : string to put before wrapped screen lines
set sbr=\ \ \ \ \ \ \ \ \ \ \ \ \ \|\ 
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.