当我在Vim中编辑包含Markdown代码的README.md并执行:set filetype?
命令时,我看到了filetype=markdown
。Markdown语法正确突出显示。
但是,当我在Vim中编辑包含Markdown代码的foo.md并执行:set filetype?
命令时,我看到了filetype=modula2
。Markdown语法未正确突出显示。
我应该在〜/ .vimrc中添加些什么,以使Vim理解foo.md或任何扩展名为.md的文件是markdown文件而不是modula2文件?
为了了解哪个脚本正在设置此文件类型,我在编辑foo.md之后执行了以下命令。
:verbose set filetype?
我发现以下输出。
filetype=modula2
Last set from /usr/share/vim/vim74/filetype.vim
在/usr/share/vim/vim74/filetype.vim中,发现以下几行。
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,README.md setf markdown
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi setf modula2
这些行显示,当编辑README.md时,文件类型设置为,markdown
但是在编辑扩展名为.md的其他文件时,文件类型设置为modula2
。换句话说,*。md文件被识别为Modula-2源代码,但是README.md被识别为Markdown代码,这是一个例外,这可能是由于README.md文件在GitHub上越来越流行。
set filetype=markdown
对于所有.md文件,将以下语句添加到〜/ .vimrc中。
autocmd BufNewFile,BufRead *.md set filetype=markdown
该声明说,开始编辑开始时,编辑一个新的缓冲区并把文件读入缓冲区后,如果该文件的模式匹配,不存在或一个新的文件时,*.md
然后set filetype=markdown
。
在我现在拥有的Vim的更新版本中,我发现此问题不再存在。
$ vim --version | head -n 2
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 31 2015 23:36:07)
Included patches: 1-488, 576
$ grep -E "markdown|modula2" /usr/share/vim/vim74/filetype.vim
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2
ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.860上的补丁似乎已进行了此更改。但是,对于在补丁860中似乎可用的这些更改如何在我的Vim版本(仅包括补丁1-448、576)中可用的情况感到有些困惑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句