Belirli bir sütuna nasıl bir cetvel kurabilirim?


50

Farklı dillerde kod yazarken, satırlarımı belirli bir uzunlukta (genellikle 79 veya 80 karakter) sınırlamam gerekiyor.

Bunu diğer editörlerde bir cetvel kullanarak (sütunda görüntülenen düz çizgi) veya metnin rengini değiştirdiğini belirterek gördüm.

Tek bir satırda 79 karaktere yaklaşırken veya üzerine çıkarken Vim'in bana nasıl göstermesini sağlayabilirim?

Yanıtlar:


64

Sadece Vim 7.3 veya daha yeni sürümlerde kullanılabilen :set colorcolumn( :set cckısa) seçeneğini kullanarak bir cetveli belirli bir satırda görüntüleyebilirsiniz .

set colorcolumn=80

Bu, o sütunun arka plan rengini kırmızı olarak ayarlayarak çalışacak görsel bir cetvel sunar.

Varsayılan renk kodunun resmi 80

Eğer (gerçekten göze çarpan olan) kırmızı dışındaki farklı bir renk kullanmak isterseniz, ayarlayarak rengini değiştirebilirsiniz highlightiçin ColorColumn.

highlight ColorColumn ctermbg=0 guibg=lightgrey

Sütun için özelleştirilmiş renk

ctermArgümanı kullanarak Vim terminal sürümleri için rengi ve argümanı kullanarak Vim GUI sürümleri için rengi ayarlayabilirsiniz guibg. Bu 0, siyah için ASCII çıkış kodunun değeridir, parlaklaştırıldığında gridir (varsayılan olarak budur). Değer lightgrey, arka plan rengini açık gri olarak değiştirmek için, gVim gibi VI'nin GUI sürümlerinde kullanılır.


10
Hatta birden fazla virgülle ayrılmış renk sütununuz olabilir!
200_success

4
Bunu join & range ile birleştirdiğinizde çok az kodla renklendirilmiş bir sürü sütuna sahip olabilirsiniz. .Vimrc'im var:execute "set colorcolumn=" . join(range(81,335), ',')
Cody Anket

19

Kevin'in cevabına bir zeyilname olarak, birden fazla renk sütununuz olabilir. Kodladığım zaman, bazen 80 sütunda "yumuşak" bir limite ve 120 sütunda "sert" bir sınıra sahibim. Bu yüzden 80'de bir çizgi istiyorum ve sonra 120'den sonra her sütunun renklendirilmesini istiyorum.

Bunu ile yapıyorum

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

Tabii ki, bu kolayca diğer tercihlere değiştirilebilir.


14

Vim 7.3, colorcolumndiğer cevaplarda çok iyi ayrıntılandırıldığı gibi seçeneği de beraberinde getiriyor .

Ancak, herhangi bir nedenle sürüm 7.3'e sahip değilseniz, vim'in matchişlevselliğini kullanarak belirli bir sütun sayısını aştığınızı gösteren görsel bir gösterge elde edebilirsiniz ( :help matchayrıntılar için).

Temel olarak, eşleme komutları, belirli bir normal ifadeyle eşleşen metin için kalıcı vurgulamalar oluşturmanıza olanak sağlar. :match ColorColumn "\%80v.""ColorColumn" grubuyla birlikte sütun 80'deki metni vurgulayacaktır. Elbette herhangi bir vurgu grubunu ve herhangi bir sütun değerini değiştirebilirsiniz. Güçlü bir görsel gösterge istiyorsanız, ifade "\%>79v.\+"80 ve sonraki sütunları vurgulayacaktır.

( \%80v"sanal sütun 80'de eşleşme" \%>79vanlamına gelir ve " sanal sütun 79'dan sonra eşleşme " anlamına gelir ; :help /\%cdaha fazla bilgi için bkz .)

Bu yaklaşım yalnızca belirtilen sütunlarda mevcut gerçek karakterler olduğunda vurgulanacaktır, ancak bu, görsel olarak daha az tutarlı olmasını sağlar colorcolumn.


4
Şahsen match, ekranın sağ tarafındaki (bana) müdahaleci büyük kırmızı çizgiyi göstermek yerine, yalnızca 80 sütun sınırını aştığım çizgileri vurguladığı için es'in daha az tutarlı yaklaşımını daha iyi buluyorum . Bu nedenle Python için kullandığım call matchadd('ColorColumn', '\(\%80v\|\%100v\)')
vimrc'imde
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.