Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
突出显示python文档字符串作为注释(vim语法突出显示)_Vim_Python 2.7_Vim Syntax Highlighting - Fatal编程技术网

突出显示python文档字符串作为注释(vim语法突出显示)

突出显示python文档字符串作为注释(vim语法突出显示),vim,python-2.7,vim-syntax-highlighting,Vim,Python 2.7,Vim Syntax Highlighting,是否可以修改(以及相应的colorscheme文件),以便在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-specifi

是否可以修改(以及相应的colorscheme文件),以便在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

您可以添加以下行:

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

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

您可以添加以下行:

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中获取。

以下内容对我很有用:

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 from.

PEP257规定对docstring使用“三重双引号”。在docstring中不必包含“三重单引号”或“单双引号”。有一个困难是我们有类docstrings、函数docstrings、模块docstrings、属性docstrings和其他docstrings。这就是为什么我决定将文档字符串考虑为:

更容易。
syn region pythonDocString start=+^\s*"""+ end=+"""+ keepend contains=...
然后:

HiLink pythonDocString        Comment
您可以在此脚本(搜索pythonDocString)中看到示例:

PEP257规定对docstring使用“三重双引号”。在docstring中不必包含“三重单引号”或“单双引号”。有一个困难是我们有类docstrings、函数docstrings、模块docstrings、属性docstrings和其他docstrings。这就是为什么我决定将文档字符串考虑为:

更容易。
syn region pythonDocString start=+^\s*"""+ end=+"""+ keepend contains=...
然后:

HiLink pythonDocString        Comment

您可能会在这个脚本(搜索pythonDocString)中看到一些示例:

谢谢,这确实有效,但它也会导致字符串赋值,例如string_var=“”blah blah”“”作为注释高亮显示。现在意识到python文档字符串“start”的定义特征是一个三引号,在行首不带非空白字符。您的回答确实让我想到了它,谢谢。它对我有用,谢谢,您能向我解释一下您的这个文件将自动包含在vim运行环境中吗?谢谢,这确实有用,但它也会导致字符串赋值,例如string_var=“”blah blah”“”作为注释突出显示。现在意识到python文档字符串“start”的定义特征是一个三引号,在行首不带非空白字符。你的回答确实让我想到了这一点,谢谢。这对我来说很有用,谢谢,你能解释一下这个文件将自动包含在vim运行环境中吗?帖子中语法文件的链接现在已断开,谢谢你捕获它。为了完整起见,您可能还希望在代码示例中包含
hi link pythondocstring Comment
。以下是指向WebArchive上此文件的链接:此答案可能需要更新,因为vim的python语法更复杂/涉及到帖子中指向语法文件的链接现在已断开,因此感谢您捕获此链接。为完整起见,您可能还希望在代码示例中包含
hi link pythongDocstring注释
。以下是指向WebArchive上此文件的链接:此答案可能需要更新,因为vim的python语法更复杂/涉及最新的python.vim版本3.3.6处理了正确着色DocString的问题。最新的python.vim版本3.3.6处理了正确着色docstring的问题。