8

80文字を超える行を強調表示するために、.vimrcに次のものがあります。

highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.*/

これは非常にうまく機能します。ただし、問題は、特定のファイルタイプでのみ機能する場合に好むことです. 基本的に、プログラミング言語は強調表示する必要があり、html、xml、txt ファイルなどは強調表示しないでください。autocmd でこれを簡単に実行できると確信していますが、それがその目標を達成するための最良の方法であるかどうかはわかりません。誰か意見はありますか?

4

2 に答える 2

7

次のようなものが必要なようです。

autocmd FileType html,xml highlight OverLength ctermbg=red ctermfg=white guibg=#592929
autocmd FileType html,xml match OverLength /\%81v.*/

とにかく私のために働くようです:-)

于 2009-11-09T17:53:44.010 に答える
6

このようなタスクに match を使用する際の問題は、編集中のバッファではなく、アクティブなウィンドウに対してローカルであることです。次の行に沿って何かを試してみます。

highlight OverLength ctermbg=red ctermfg=white guibg=#592929
fun! UpdateMatch()
    if &ft !~ '^\%(html\|xml\)$'
        match OverLength /\%81v.*/
    else
        match NONE
    endif
endfun
autocmd BufEnter,BufWinEnter * call UpdateMatch()

基本的に、現在のウィンドウのバッファーが変更されるたびにトリガーする必要があります。その時点で、バッファのファイルタイプを評価し、一致をアクティブにするかどうかを調整します。

名前のないバッファの編集とそのファイルタイプの設定 (保存または手動で &ft を設定することによる) もサポートしたい場合は、FileType もリストに追加する必要があります。

于 2009-11-09T18:19:47.020 に答える