2011-07-12 15 views
12

私は、doctestをインクルードするために、私のpythonソースコードに複数行のドキュメント文字列を広範囲に使用しています。残念ながら、vim/gvimは構文の強調表示に苦労しているようですが、時にはその場所を失い、文字列リテラルの途中にあることを忘れてしまい、強調表示が文字列から文字列および文字列から文字列に "反転"します。gvim長い複数行文字列のハイライト表示

もう一度上にスクロールして戻ってください。そして、vim 通常はが問題を修正しますが、時には数回の試行が必要です。

私のドキュメントストリングを短くすることとは別に、vimがこれらの長いリテラルをハイライト表示するのを手助けする方法はありますか?

答えて

15

:syntax synは、テキスト内の特定のポイント(:help syn-sync)に適用する構文状態を同期させる方法を制御します。最も正確な同期のために(これはダウンvimのが遅くなります)、試してみてください。

autocmd BufEnter * :syntax sync fromstart 

それとも、あなたはそれが間違っている気づく時はいつでも手動で同期したい場合は、(あなたはキーボードショートカットにマップできます)このコマンドを実行してください:

:syntax sync fromstart 

minlinesが役に立つ場合もあります。 :help syn-syncから

「minlinesの= {N}」引数が与えられた場合、解析は常に後方少なくとも 多くの行を開始します。これは、解析が正しく行われる前に、または同期を使用できないときに、わずか数分の間に解析を行う場合に使用できます。

だから、あなたを助けるかもしれないあなたの.vimrcでこれを置く:

syntax sync minlines=500 

編集:あなたは、おそらくのための同期fromstartをしたくない http://vim.wikia.com/wiki/Fix_syntax_highlighting

+0

私は定期的に(しかしかなりいつも) 'SYN同期fromstart'を使用し、これまで実際に数百キロバイトのJavaScriptファイルを編集する場合でも、任意の減速を気づいていません。現代のハードウェアはかなり強力です。 HTMLを使用すると特に便利です。 –

+0

真。ちょっとしたリファレンスとして、8GBのRAMと高速ハードドライブを搭載したコアi7では、通常の長さのライン(ファイルサイズは約2.5MB)を超えていれば、減速が認められます。 – PonyEars

2

:あなたが必要なすべてを持って、このページを発見すべてあなたが編集しているコードのタイプです。ちょうどhtmlです。そのような場合、あなたのvimrcに以下を追加:

autocmd FileType html autocmd BufEnter * :syntax sync fromstart