2

Я использую Python и в Python, три кавычки подряд

"""

или же

'''

означают блочный комментарий, а обычный комментарий - это просто хэштег. (#) Я хочу, чтобы комментарии были серого цвета, а строки - оранжевого. Я использую цветную схему Мерфи. Я сделал файл murphy-mine.vim и добавил к нему

hi Comment term=bold     ctermfg=Grey     guifg=Grey
hi String  term=bold     ctermfg=LightRed guifg=Orange

Но gvim воспринимает """ и ''' как строку в синтаксисе python, а не как комментарий (блок комментария). Есть ли способ для меня, чтобы сказать gvim видеть """ и ''' как комментарий / блочный комментарий, а не как строку?

2 ответа2

3

Вы можете поместить следующее в ~/.vim/after/syntax/python.vim (взято отсюда:

" Highlight docstrings as comments, not string.
syn region pythonDocstring  start=+^\s*[uU]\?[rR]\?"""+ end=+"""+ keepend excludenl contains=pythonEscape,@Spell,pythonDoctest,pythonDocTest2,pythonSpaceError
syn region pythonDocstring  start=+^\s*[uU]\?[rR]\?'''+ end=+'''+ keepend excludenl contains=pythonEscape,@Spell,pythonDoctest,pythonDocTest2,pythonSpaceError

hi def link pythonDocstring pythonComment
0

PEP 257 предписывает использовать "" "тройные двойные кавычки" "" для строк документации. Не обязательно включать '' 'тройные одинарные кавычки' '' или 'одинарные двойные кавычки' в строки документации. Есть одна сложность в том, что у нас есть классные строки документов, функциональные строки документации, модульные строки документации, строки атрибутов и дополнительные строки документации. Вот почему я решил, что проще рассмотреть docstring следующим образом:

syn region pythonDocString start=+^\s*"""+ end=+"""+ keepend contains=...

А потом:

HiLink pythonDocString        Comment

Вы можете увидеть примеры в этом скрипте (поиск pythonDocString): https://github.com/andbar-ru/python-syntax/blob/master/syntax/python.vim

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .