vim

2012-02-06 25 views
8

'da python kod bloklarını vurgulama Vim'deki farklı girinti düzeylerini vurgulamak istedim, böylece büyük kod bloklarını daha kolay tanımlayabileyim. Bazı büyük/iç içe/iç içe/bloklarla iç içe geçmiş büyük iç içe geçmişlerim var ve bu, içine girilen bloğu, yani imleçten önce kaç tane "sekme" olduğunu tanımlamak zorlaşır.vim

Sekmeleri vurgulamanın bir yolu var mı?

Bu aklımda ne var:

try: 
* while True: 
* * for foo in bar: 
* * * do() 
* if something: 
* * done() 
except bla: 
* exit() 

* özel arka plan rengini kuracaktır.

Girinti seviyelerini tanımlamak için başka herhangi bir yolla da giderim.

+1

Zorunlu snarky comment: belki de editörünüz yerine kodunuzu düzeltebilirsiniz. Ancak ilginç bir soru için ;-) +1. Bunun aslında nasıl görüneceğini merak ediyorum. –

cevap

8

Indent Guides vim eklentisi tam olarak bu tür bir vurgulama yapar. listchars seçeneği ile birlikte kullanın (Ackar'ın işaret ettiği gibi).

+0

Oh Vay, bu eklenti oldukça havalı. Beklediğimden daha az rahatsız edici. –

+0

@Kristo Kullanmak ve beğenmek, ne yazık ki, boş boşluklar için başarısız çünkü vim boşlukları vurgulamaktan aciz – puk

3

Belirtiler karakterlerini görüntülemek için listchars seçeneklerini kullanabilirsiniz (bkz. :help listchars). Eğer kullanabilirsiniz sekmeleri göstermek istiyorsanız Örneğin

:

:set listchars=tab:*\  " Be careful : there is a space after the backslash 
:set list 

Ayrıca SpecialKey grubu için highlight özelliğini kullanarak vurgulayarak renkleri değiştirebilirsiniz. Eğer bir terminalde Vim'i ise

:

:highlight SpecialKey ctermfg=Cyan 

detaylı bilgi için :help highlight bakınız.

Tüm mevcut renkleri görmek için :runtime syntax/colortest.vim numaralı telefonu da kontrol edebilirsiniz.

+0

Belki de liste şemaları için vurgu rengini nasıl ayarlayabileceğinden bahsetmelisiniz. –

+0

Yanıt düzenlendi. Teşekkür ederim :) – Ackar

+1

Bu ne * tam olarak ne istediğini * rağmen, bu benim için çalışmıyor. 'Expandtab' seçeneğini kullandım, bu yüzden scriptlerimde yalnızca 'tab' karakterleri yok, sadece boşluklar var. Liste [chars], büyük ipucu hakkında bilmiyordum. –