gpt4 book ai didi

vim - 如何让 Vim 理解 *.md 文件包含 Markdown 代码,而不是 Modula-2 代码?

转载 作者:行者123 更新时间:2023-12-03 10:12:35 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Enabling markdown highlighting in Vim

(5 个回答)


6年前关闭。




当我在 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 异常(exception),因为它被识别为 Markdown 代码,这可能是因为 README.md 文件在 GitHub 上越来越受欢迎。

解决方案

将以下语句添加到 ~/.vimrc 到 set filetype=markdown对于所有 .md 文件。
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)感到有些困惑。

关于vim - 如何让 Vim 理解 *.md 文件包含 Markdown 代码,而不是 Modula-2 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279292/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com