Vimでマークダウンハイライトを有効にする


138

OS X Lion搭載のMacBook AirのターミナルでVimを使用していますが、Markdown構文の強調表示に適したプラグインが見つかりません。

これまでのところ、plasticboyプラグインとTim Popeのプラグインを試しました。plasticboyプラグインは問題なく動作しましたが、行末の空白が強調表示されていたため、これをオフにする方法がわかりませんでした。(space私が書いているときにヒットするたびに、キャラクターを強調表示するので、それは本当に迷惑です。)

Timのプラグインは、を使用するヘッダーを除いて、強調表示の方法であまり機能していないようです###。コードブロックと箇条書きは無視されます。そこに何か足りないかもしれません。私は.mdMarkdownファイルで拡張子を使用しているので、ファイルタイプを選択する必要があります。

Markdownサポートが組み込まれているVim 7.3への参照も見ましたが、これら2つのプラグインのいずれかがないと、強調表示がまったく表示されません。

これらのいずれかが機能するには特定の配色が必要ですか?


24
*.mdマークダウンの正しい拡張ではありません。これはmodulaファイル用です。Tpopeプラグインは正常に動作します(このプラグインはすべて正常に動作します)*.markdown拡張機能を使用する必要があります
lucapette

7
@lucapette Tim Popeのプラグインのftdetectには、次のものも含ま*.mdれます*.markdown,*.mdown,*.mkd,*.mkdn。plasticboyプラグインは自動検出のみ*.mkd,*.markdown,*.mdwn
pb2q

1
plasticboyプラグインのソースから、実際に検出さ.mdれるように見えます。ブログにScriptogr.amを使用しているため、今のところこの拡張機能にロックされています。これは、現在認識している唯一の拡張機能です。
Josh Earl

1
ただ、これを発見し、それはgithubの風味マークダウンのためにかなりロッキンだ:github.com/jtratner/vim-flavored-markdown
マシュー・ターナー

問題についてはplasticboy / vimの-値下げその開発者はそれを解決することができるように、プロジェクトの未解決の問題をしてください。ダブルスペースが<br>タグを生成するので、末尾の空白を強調することは適切な動作であるため、ライターにそれを知らせる必要があります。
Ciro Santilli郝海东冠状病六四事件法轮功

回答:


22

これにより、plasticboy mkdプラグインを使用するときに、行末のスペースの強調表示が無効になります。

:syn clear mkdLineBreak

あなたは可能性がありautocmd、あなたがそれを毎回行う必要がないようにその必要なファイル拡張子のためにあなたはマークダウンファイルをロードします。

Markdownは、2つ以上のスペース文字で終わる行をを挿入することによって特別に処理するため、この特定のハイライトが存在することに注意しください<br>

plasticboyプラグインはTODO、このルールにハイライトを使用します。これ、デフォルトで、目立つように、本当に派手な-背景が黄色になるように設計されているため、少し多すぎます。このhighlightルールを変更することで、視覚的に目立たなくすることができます。これを行う簡単な方法の1つは、次のようなものです。

:hi link mkdLineBreak Underlined

これで、これらの行末のスペースは下線付きで表示されます。他のhighlightグループにリンクして、もっと魅力的なものを探してください。を使用linkする代わりに、これらの行末スペースについてさらに具体的に取得できます。たとえば、独自のhighlightコマンドを使用して、カスタムctermfgctermbgguifgを指定することで、通常の背景よりもわずかに明るい/暗いように表示されるように指定できます。、guibg設定。

上記のように、autocmd特定の設定を適用することができます。

リンクhighlightグループの詳細については、次のように入力:help group-nameしてください。リンクすると、現在のhighlightルールを使用して表示する必要があるリンク可能なグループのリストが表示されます。また::help highlight


2
それは非常に理にかなっています。Markdownで2つのスペースが重要であることを理解していませんでした。それは私を悩ませ続けない限り、私はそれを有効にしておくと思います。ありがとう!
Josh Earl

ええ、だからこそ、2つのスペースが入力されるまで、ハイライトが開始されません。
pb2q

@ josh-earlは、plasticboyプラグインを使用する際の代替案について、私の編集を参照してください
pb2q

308

マークダウンのネイティブ構文の強調表示については.markdown、デフォルトで拡張子が付いたファイルでのみ機能すると思います。ファイルの
マークダウン構文の強調表示に問題がありました.md
私は試した:

:set syntax=markdown

そしてそれはうまくいった。だから私は私の中に次の行を含めました.vimrc

au BufNewFile,BufFilePre,BufRead *.md set filetype=markdown

今私のvimは私の.mdファイルの構文ハイライトを持っています。

savにはBufFilePreが必要です


13
これを読んでいる他の人にとって:はい、それは機能し、プラグインをインストールするよりもはるかに簡単な問題の解決策です。コマンドラインからこれを行うための高速な方法:echo "au BufRead、BufNewFile * .md set filetype =
markdown

11
これは受け入れられる答えであるように私には思えます。
Enrico Campidoglio 2014

4
@SamStoelingaこれはバグで.mdはなく、Modulaでも使用されます。どれを使用するかを検出するには、高度なヒューリスティックが必要です。
nyuszika7h 2014年

8
Vim 7.4.480以降、*.mdファイルはデフォルトでMarkdownとして認識されます。
fwalch 2015

1
正解ですが、不完全です。これは、同様にして機能するためにはSave As… :sav、コマンド、1つのニーズはに自動コマンドを拡張するBufFilePreautocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
セルジュStroobandt

19

ネイティブ構文の強調表示

Markdownのネイティブ構文強調表示は、デフォルトでは.markdownファイル拡張子に対してのみ機能します。

次の行は.vimrcvimおよびの両方で最良の結果をもたらしますgvim

autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown.pandoc

説明:

1. Markdownフレーバーを指定してください!

Markdownの主に1つのフレーバー(例:Pandoc)で作業する場合は、これについても言及してください。そうすることで、Markdown固有とPandoc固有の両方のVimプラグインの混合とマッチングが可能になります。例:vim-pandoc-syntaxプラグインは、私の強調表示のニーズに特に適していることがわかりました。それでも、Markdownフォールディングには、より一般的なvim-markdown-foldingを使用します。

ちなみに、ドットで区切られたフレーバーは1つだけ許可されます。例: filetype=markdown.pandoc

2. gvim必要BufFilePre

gvimコマンドBufFilePreでMarkdownファイルタイプを認識するために、自動コマンドラインに追加が必要Save As… :savです。


15

ティムさんは、プラグインた.md拡張子だけのために働くREADME.md ためのfiletype.vim指定そう。

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md  setf markdown

1
誤り; このように動作するデフォルトのVimインストールについて考える必要があります。Timのプラグインは、すべての.mdファイルに対してそれを上書きします。github.com/tpope/vim-markdown/blob/master/ftdetect/markdown.vimを
corvec

7

すべての構成をに配置したくない場合は、次の内容で~/.vimrc作成できます~/.vim/ftdetect/markdown.md(またはWindowsでは同等の設定)。

au BufNewFile,BufRead *.md setf markdown

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.