13

vim で、ファイル タイプが「markdown」のファイルを編集していますが、$x_i$ などのラテックス数式が含まれています。マークダウンの Vim の構文強調表示は、パターン *_* (文字-アンダースコア-文字) をエラーと見なし、そのようなパターンのアンダースコアを明るい赤で強調表示します。.vimrc に次の行を追加して、これをオフにしたいと思います。

autocmd BufEnter *.Rmd "Dear vim, please don't highlight the pattern *_*"

それを行うための適切なコマンドは何ですか? 構文ファイルを編集せずに.vimrcでそれを行うことはまったく可能ですか?

注:マークダウン構文の強調表示は一般的に維持したいので、その特定の機能のみをオフにします。

4

2 に答える 2

14

そのためには、Markdown 構文を変更する必要があります。1 つの方法は、エラーの解析を削除することです。

:syn clear markdownError

しかし、それにより、他の構文規則がその文字のイタリックセクションを開始することになります。_エラーの強調表示を次のようにクリアすることをお勧めします。

:hi link markdownError Normal

一般的なエラーの強調表示を維持し、特殊な文字列の例外のみを定義$x_i$するには、オーバーライド構文グループを定義します。幸いなことに、既存の構文がないため、これは簡単です。

:syn match markdownIgnore "\$x_i\$"

(可能なすべての数式に一致するように正規表現を調整します。) これは、元の構文スクリプトの~/.vim/after/syntax/markdown.vimに実行する必要があります。

于 2013-10-02T13:20:16.360 に答える
14

マークダウン エラー パターンから削除する場合_は、再定義できます。私の場合、ドキュメントに多くの URL を入れるので、アンダースコアのエラー通知を一言でオフにしたいと考えています。

syntax/markdown.vimファイル内のエラーパターンを定義する行があります

" Original error pattern
syn match markdownError "\w\@<=_\w\@="

パターンから を削除し、_に追加し~/.vim/after/syntax/markdown.vimます。

" New error pattern without the underscore
syn match markdownError "\w\@<=\w\@="
于 2015-12-24T06:25:24.343 に答える