.md 文件上没有语法高亮?

.md 文件上没有语法高亮?

Vim 可以正确高亮显示.markdown文件,但它似乎不熟悉.md文件类型。在问题https://stackoverflow.com/questions/10964681似乎暗示这.md是错误的 markdown 文件扩展名。我有点困惑。

扩展名错误吗.md?如果不是,为什么 Vim 没有突出显示其语法?

Vim 版本: 7.4

答案1

分析

在 中$VIMRUNTIME/filetype.vim,你会发现这个:

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

因此,只有README.md被检测为 Markdown。在搜索以下文件时,可以找到一个原因*.md

" Modula 2
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi setf modula2

解释

不同于MIME 类型(如果存在注册表),文件扩展名不标准化,并且(尤其是短文件)多个可能的含义重叠。由您决定如何处理它们。如果更有可能意味着foo.mdMarkdown 文件而不是 Modula 2 源代码,只需覆盖 Vim 的默认设置,例如通过

au BufNewFile,BufRead *.md  setf markdown

~/.vim/ftdetect/markdown.vim,或如 中所述:help new-filetype

答案2

autocmd BufRead,BufNew *.md setf markdown

在 vim 7.4 上对我来说不起作用,所以我不得不使用“旧”的传统方式来设置文件类型:

autocmd BufRead,BufNew *.md set filetype=markdown

这会*.md正确突出显示文件。

答案3

将这些行添加到您的~/.vimrc

augroup markdown

    " remove previous autocmds
    autocmd!

    " set every new or read *.md buffer to use the markdown filetype 
    autocmd BufRead,BufNew *.md setf markdown

augroup END

答案4

尝试以 .markdown 结尾文件 - 它可能很长,但对我来说很有效。

相关内容