Python

2009-09-08 10 views
5

için 'else:' seçeneğini vurgulayan Vim sözdizimi Vim'deki varsayılan python sözdizimi vurgulamadan rahatsız oluyorum.Python

else: deyimini doğru olarak vurgulamıyor. Vim yalnızca else ve : arasındaki boşlukta beyaz boşluk varsa, else : çalışır, ancak else: yapmaz.

Düzeltilmesi kolay olmalı.

kullanıyorum Vim 7.2

cevap

6

. Bu başka bir şey yaptı: tek kelime olarak belirtildi. Bunu kaldırdıktan sonra: sözdizimi vurgulama gayet iyi çalışıyor.

/usr/share/vim/vim72/syntax/python.vim 

dosya nedense güncel olmadığını

set iskeyword+=:

+0

Tam olarak doğru. Teşekkürler efendim! – Bob

+0

Benzer bir etki elde etmek için, yalnızca bir anahtar kelime için yalnızca bir anahtar kelime eklemek ve daha sonra Anahtar Kelime için vurgulamayı birbirine bağlayan bir sözdizimi kuralı ekleyebilirsiniz. – SingleNegationElimination

+1

Komutun doğru olduğundan emin misiniz? '+ =:' Benim için hiçbir etkisi yoktu, '- =: 'Mark Roberts'ın yaptığı gibi. –

4

Varsayılan olarak çalışması gerekir.

/usr/share/vim/vim72/syntax/python.vim 

şöyle bir çizgi olmalıdır:

syn keyword pythonConditional if elif else 

Değilse, daha fazla araştırmak böyle bir şey olduğu dosyaya

bak. elif çalışıyor mu?

1

Dosya türü öğelerini etkinleştirin böylece işler otomatik olarak ayarlanır. Python oto girinti ve sözdizimi burada vim için kurulum vurgulayarak ettik: Ben vimrc dosyasında ifadesi altında kaldı http://www.pixelbeat.org/settings/.vimrc

3

Bu periyodik açılır dan sözdizimi vurgulama dosyanın en son sürümünü edinin ve benim vimrc bu koyarak için atmış: my ~/.vim olarak

" No seriously, else: is the same as else 
autocmd BufEnter,BufRead,BufNewFile *.py set iskeyword-=: 
+0

Bununla birlikte, bu, kolonun da vurgulanmayacağı anlamına gelir. Birisi bunu beğenebilir veya bu gerçeğin hoşuna gitmez. – Zelphir

0

/syntax/python.vim dosyası, bu sorunu çözen bir satır var

syn keyword pythonConditional else: 

.