webdevqa.jp.net

vim-行の3つの引用符を文字列ではなくコメントとして扱う方法

私はpythonを使用し、Pythonでは3つの引用符を続けて使用します

"""

または

'''

ブロックコメントを意味し、通常のコメントは単なるハッシュタグです。 (#)コメントを灰色にし、文字列をオレンジ色にしたい。カラースキームマーフィーを使用しています。 murphy-mine.vimファイルを作成し、これを追加しました

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

しかし、gvimは"""'''をコメント(ブロックコメント)として扱うのではなく、python構文の文字列として認識します)。gvimに伝える方法はありますか? """'''を文字列ではなくコメント/ブロックコメントとして表示するには?

3
user216485

以下を~/.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
3
Ingo Karkat

PEP 257は、docstringに "" "三重二重引用符" ""を使用することを規定しています。 '' '三重一重引用符' ''または "一重引用符"をdocstringに含める必要はありません。クラスdocstring、関数docstring、モジュールdocstring、属性docstring、および追加のdocstringがあるという問題が1つあります。そのため、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

0
Andrey