2009-09-08 2 views
5

Меня раздражает подсветка синтаксиса python по умолчанию в Vim.Vim синтаксис подсветка 'else:' для Python

Он не отображает корректное заявление else:. Vim только подчеркивает оператор else, если у меня есть пробел между else и двоеточием :, поэтому else : работает, но else: нет.

Должно быть легко исправить.

Я использую Vim 7.2

ответ

6

Я был ниже заявление в моем файле vimrc. Это сделало иначе: быть обозначенным как одно слово. После удаления этого еще: подсветка синтаксиса отлично работает.

set iskeyword+=:

+0

Это точно. Спасибо, сэр! – Bob

+0

Чтобы получить аналогичный эффект, вы можете просто добавить правило синтаксиса только для двоеточия, которое затем связывает выделение для ключевого слова. – SingleNegationElimination

+1

Вы уверены, что это правильно? '+ =:' не имел никакого эффекта для меня, '- =:', что упоминал Марк Робертс. –

4

Он должен работать по умолчанию.

Посмотрите на файл, который что-то вроде этого:

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

Там должна быть строка там выглядит следующим образом:

syn keyword pythonConditional if elif else 

Если нет, то дальнейшее расследование. Работает elif?

1

Включите материал типа файла, чтобы все было настроено автоматически. Я питон авто отступов и подсветка синтаксиса для настройки Vim здесь: http://www.pixelbeat.org/settings/.vimrc

4

Обратите внимание, что файл в

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

не в курсе по какой-то причине.

Получить самую последнюю версию файла подсветки синтаксиса из http://www.vim.org/scripts/script.php?script_id=790

+0

Это действительно привело к изменению в сочетании с ответом Марка Робертса. – Zelphir

3

Это периодически выскакивает, и я взял, чтобы положить это в моем vimrc:

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

Однако это означает, что двоеточие также не будет подсвечено. Это может понравиться или не понравиться этому факту. – Zelphir

0

В моем ~/.vim /syntax/python.vim, у меня есть строка

syn keyword pythonConditional else: 

, который решает эту проблему.