Ответ 1
вы можете добавить следующую строку:
syn region Comment start=/"""/ end=/"""/
к вашему ~/.vim/after/syntax/python.vim. Вы можете создать этот файл, если он не существует.
Можно ли изменить python.vim (и соответствующий файл colorscheme), чтобы строки с тремя кавычками находились прямо под инструкциями класса и def ( aka docstrings) будут выделены как комментарии во время подсветки синтаксиса python под vim?
class URLopener:
"""Class to open URLs.
This is a class rather than just a subroutine because we may need
more than one set of global protocol-specific options.
Note -- this is a base class for those who don't want the
automatic handling of errors type 302 (relocated) and 401
(authorization needed)."""
def addheader(self, *args):
"""Add a header to be used by the HTTP interface only
e.g. u.addheader('Accept', 'sound/basic')"""
# sample comment
вы можете добавить следующую строку:
syn region Comment start=/"""/ end=/"""/
к вашему ~/.vim/after/syntax/python.vim. Вы можете создать этот файл, если он не существует.
Следующие работали для меня:
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
Взято из измененного python.vim из здесь.
PEP 257 предписывает использовать "" тройные двойные кавычки "" "для docstrings. Не обязательно включать" тройные одинарные кавычки "или" одиночные двойные кавычки" в докстроны. Существует одна трудность, заключающаяся в том, что у нас есть классные докстры, функции docstrings, docstrings модуля, атрибуты docstrings и дополнительные docstrings. Вот почему я решил, что проще рассмотреть docstring следующим образом:
syn region pythonDocString start=+^\s*"""+ end=+"""+ keepend contains=...
И затем:
HiLink pythonDocString Comment
Вы можете увидеть примеры в этом script (search pythonDocString): https://github.com/andbar-ru/python-syntax/blob/master/syntax/python.vim