Выделите docstrings python как комментарии (выделение синтаксиса vim) - программирование
Подтвердить что ты не робот

Выделите docstrings 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
4b9b3361

Ответ 1

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

syn region Comment start=/"""/ end=/"""/

к вашему ~/.vim/after/syntax/python.vim. Вы можете создать этот файл, если он не существует.

Ответ 2

Следующие работали для меня:

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 из здесь.

Ответ 3

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