17

是否可以修改python.vim(和相应的颜色方案文件),以便在 vim 下的 python 语法突出显示期间,将在 class 和 def 语句(又名 docstrings)下的三引号字符串突出显示为注释?

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
4

3 回答 3

18

您可以添加以下行:

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

到你的 ~/.vim/after/syntax/python.vim。如果该文件不存在,您可以创建它。

于 2013-04-16T17:13:13.010 回答
8

以下对我有用:

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 。

于 2013-04-17T03:43:08.293 回答
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

于 2017-03-24T14:03:29.140 回答