定義された列の後のコメントに色を付ける方法


8

私はかつて、このヘルパーがvim列80の行の長さ制限にPEP8ルールを適用するのを助けるために縦線の種類を表示できるようにするためにこれらの資料を与えられました。

"   Long lines highlighting.
nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
    if !&diff
        if !exists('w:longlinehl')
            let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
            echo "Long lines highlighted"
        else
            call matchdelete(w:longlinehl)
            unl w:longlinehl
            echo "Long lines unhighlighted"
        endif
    endif
endfunction

実行中:

長い行の蛍光ペンの切り替え

これらすべてを使用して、80番目の列をマークします。

十分な時間と労力が与えられれば、コメントの場合にのみ、vim 72桁目をはるかに超えるテキストをマークするための同様の機能を利用できます誰かがどこかの時点ですでにコード化していると思います。そのスニペットの場所をすでに知っていますか?


synID()およびでコメントとして強調表示されているものがあるかどうかを確認できますsynIDattr()。次のようなもの if ((synIDattr(synID(line("."), 72, 0), "name") =~ 'comment\c')
Tumbler41

アム私はそれへのリンクになっnnoremapたりautocmd、または何か?それを:コンソールに書き込むと、E110andが投げられE15ました。
13260 2017

回答:


10

含まれている構文領域を試してください:

syn match TooLong contained containedin=pythonComment /\%50c.*/
hi link TooLong Error

の代わりに5080orまたは72orの任意の列を使用します。

ここに画像の説明を入力してください


それvimはどのバージョンですか?
13260 2017

1
8.0.586、colorchemeとしてmolokaiを使用。
muru

同様にvim --version提示VIM - Vi IMproved 8.0.586 ...?何をしているのかよくわかりませんが、私はあなたのように働いていません。私が言っVIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 10 2017 00:54:29) ...ているのは、Debian JessieのバニラVIMです。
13260 2017

これには特に新しいものはありません。ここで使用しているすべての機能はかなり古く、Jessieの7.4.488で動作するはずです(これはCentOS 7のVim 7.4.160でも動作するためです)。これをPythonファイルでテストしましたか?PEP8について言及されたので、私はを使用しましたcontainedin=pythonComment。他のファイルタイプを使用している場合は、コメントの構文領域を調べて、代わりにそれを使用する必要があります。
muru

2
@uprego Pythonファイルを開いた後でこれらのコマンドを実行します。vimrc後でロードされた構文ファイルは現在のルールをクリアする可能性が高いため、これらの行を単純に追加しても機能しません。autocmdまたはを使用し~/.vim/after/syntax/python.vimます。
muru
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.