.md文件上没有语法突出显示?


15

Vim可以正确突出显示.markdown文件,但是似乎不熟悉.md文件类型。对问题/programming/10964681的评论似乎暗示这.md是用于Markdown文件的错误文件扩展名。我有点困惑。

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

Vim版本: 7.4


我在.md使用7.3时突出显示了语法。可能是配置决定。这是GNU / Linux Debian Wheezy。
174140 2014年

1
.md扩展名错误吗?” Markdown的创建者最近对此话题发表了评论
Mike Seplowitz 2014年

Answers:


12

分析

在中$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.md意味着Markdown文件比Modula 2源代码更有可能,只需覆盖Vim的默认值即可,例如通过

au BufNewFile,BufRead *.md  setf markdown

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


9

autocmd BufRead,BufNew *.md setf markdown

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

autocmd BufRead,BufNew *.md set filetype=markdown

*.md可以正确突出显示文件。


3
这是您想要的那个。最重要的答案不起作用。
迈克尔·福克斯

8

将这些行添加到您的~/.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

1
为什么要在缓冲区的每个条目上重新设置文件类型?ftdetect事件的规范集是BufNewFile,BufRead,在这里也应该足够了。
Ingo Karkat 2014年

1

尝试以.markdown结尾的文件-可能很长,但这对我有用。


是的,就是这样。但是,如果.md文件是markdown文件,我打算让Vim正常播放!GitHub README的用途.md也是如此。
krystah 2014年

您实际上也可以.markdown与GitHub一起使用。无论如何,请使用其中一个,.md或者.markdown是因为其他人获得的支持较少。
nyuszika7h 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.