Vim'de 80 karakterden sonra farklı bir arka plan rengi gösteriliyor


135

Vim 80 sütun düzeniyle ilgili endişeleri gördüm , ancak buradaki cevap yalnızca 80 karakter işaretini aşan gerçek içeriği vurguluyor. Normal arka planı kullanan en soldaki 80 sütunu ve biraz farklı bir arka plan kullanan bunu geçen her şeyi içeren 100+ sütunlu bir Vim penceresine sahip olmak istiyorum. Vim penceresinin arka planı farklı bir renkte olmalı, sadece 80 karakterlik noktayı aşan metin değil. Bu, önce üzerinden geçmek zorunda kalmadan 80 karakterlik noktaya ne kadar yaklaştığımı gösterir.

Bunun şu anda mümkün olduğunu sanmıyorum, ancak her ihtimale karşı soracağımı düşündüm.

Belki bir eklenti ile yapılabilir?

TextMate İstenilen Vim Sağ Kenar Boşluğu Vurgulama Örneği

TextMate'in genel tercihlerinde "Sağ kenar boşluğunu vurgula" yı seçerek, istenen Vim davranışının bir örneğini görebilirsiniz.

TextMate Sağ Kenar Boşluğu Vurgulanan Örnek


Yanıtlar:


223

Vim> = v7.3'e sahipseniz, .vimrc81'i ve ilerisini vurgulamak için bunu basitçe ekleyebilirsiniz (böylece 80, son geçerli sütununuzdur):

let &colorcolumn=join(range(81,999),",")

Bir vurgu görmüyorsanız, ColorColumnvurgu rengi ayarınız olmayabilir . Bunu ekleyin (tercihlerinize göre ayarlayın):

highlight ColorColumn ctermbg=235 guibg=#2c2d27

Şimdi, sütun 80'in yanı sıra 120 ve sonrasını vurgulamayı seviyorum, böylece ayrı "uyarı" ve "tehlike" işaretlerim var. Bunu şu şekilde yapabilirsiniz:

let &colorcolumn="80,".join(range(120,999),",")

Misal

İşte GVim'in .vimrc.

GVim .vimrc dosyamı düzenliyor

Ubuntu Mono 11 yazı tipini ve molokai renk düzenini kullanıyorum. Sen benim bulabilirsiniz vim yapılandırma ve benim tüm dotfiles GitHub'dan.


3
colorcolumn 256 tanımla sınırlıdır, per :help colorcolumn... Buna ek olarak, birleştirme tekniğinizi kullanırken ayarım bir süre kısaltılmış gibi görünüyor, ancak bu uzunluğun ne olduğunu bulmak için vim'in kaynağında arama yapamayacağım. Ayrıca, vim bu ayarın değerini bir pencereye her girdiğinde bir dizge olarak ayrıştırır, bir tamponu başlatır, vb. Bu nedenle bu, istenen sonucu elde etmenin pahalı bir yoludur.
cptstubing06

15
Nokta dosyalarınız SICAK.
obfk

1
Bunu gönderdiğiniz için teşekkürler, tam olarak aradığım şey buydu! Sadece bir soru daha, bu kuralları belirli bir dosya türüne (.md) ayarlamamanın bir yolu var mı?
David Dias

1
@DavidDias Elbette! autocmd FileType markdown let &colorcolumn=""Tamamen bozmak gibi bir şey yapabilirsiniz .
Justin Kuvvetleri


78

81 sütunu vurgula

:set textwidth=80
:set colorcolumn=+1

Ayrıca biraz stil de yapabilirsiniz:

:hi ColorColumn guibg=#2d2d2d ctermbg=246

2
Bu, ayrıca 256 sütuna kadar vurgulamak da mümkündür, ancak ne yazık ki vurgulamak için bir sütun listesi gerektirir ve bunun için bir kısaltma yoktur, bu nedenle :set colorcolumn=+1,+2,+3,+4,+5,+6muhtemelen ne kadar +256geniş olursa olsun, vb. Gibi bir şey yapmanız gerekir. sağ marjınızı beğeneceğinizi düşünüyorsunuz. Ancak bu, penceredeki tüm satırları değil, yalnızca arabellekte bulunan satırları vurgular.
mkomitee

1
@ Dislexic Tangent: Neden bunun yerine ilk 80 sütunu vurgulamıyorsunuz?
brice

1
Bunu düşünmemiştim. Arka planınızı 80'den fazla sütunu vurgulamak için kullanmak istediğiniz renge ayarlayın ve 1-80 arasındaki tüm sütunlar için renk sütunu ayarlayın ve renk sütununun vurgu grubunu normal arka planınızın olmasını istediğiniz renk olacak şekilde ayarlayın.
mkomitee

2
Bir soru, yazarak rengi düzgün bir şekilde ayarlayabilsem de, :hi colorcolumn ....vimrc dosyama koyduğumda işe yaramıyor gibi görünüyor. Bunu nasıl yapacağını biliyor musun?
robbrit

Robbrit ile aynı sorunu görüyorum - Vurgu komutunu ex modda çalıştırırsam, iyi görünüyor, ancak vimrc dosyamda varsa, renk şemamı yok ediyor ...
Bennidhamma

16

Yukarıdaki yorumda önerilen çözüm. Önce arka planınızı vurgulayın, ardından ColorColumn siyahını bir kaplama olarak vurgulayın. Renk sütununuzu 1-80. Satırlara ayarlayın.

hi Normal guibg=#32322f ctermbg=236
hi NonText guibg=#32322f ctermbg=236
hi ColorColumn guibg=#000000 ctermbg=0
let &colorcolumn=join(range(1,80),",")

1
Bu basit ama harika. Teşekkürler!
hava saldırısı

8

Deneyin:

:/\%>80v./+

+80 karakteri hata olarak işaretleyecek


Çok zekice. Bunu seviyorum çünkü tema değişikliklerine uyum sağlıyor. Teşekkürler.
Benjamin

0

İstediğin şeye sahip olmanın mümkün olduğunu sanmıyorum ama ben de böyle bir şeyle ilgilendiğim için bu soruyu takip ediyorum.

Belki, bariz olanı söylüyorum, ancak 80. sütuna ne kadar yaklaştığınızın bir göstergesi için 70'inci + sütunlarda en yüksek değeri ayarlayabilirsiniz.


0

Benim gibi onedark.vim kullananlar için Conner tarafından yayınlanan bir çözüm isteyenler için bu satırları vimrc dosyama ekledim

let &colorcolumn=join(range(1,80),",")
let g:onedark_color_overrides = {
  \ "black": {"gui": "#2C323C", "cterm": "236", "cterm16": "8"},
  \ "cursor_grey": {"gui": "#282C34", "cterm": "235", "cterm16": "0"}
  \ }

Sadece iki değeri değiştirdim, onu onedark'ın kaynak kodundan aldım

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.