vim - 在vim中根据文件扩展名更改文件类型

标签 vim vim-syntax-highlighting

我想根据 vim 中的文件扩展名更改文件类型。

我的 .vimrc 中有以下代码

autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown setlocal ft=markdown

但是当我打开一个扩展名为 .md 文件的文件时,文件类型没有改变。我运行 :set ft 命令,它将输出显示为 filetype=modula2

我做错了什么吗?

编辑:

我通过重命名旧的 .vimrc 文件开始调试,并仅用这一行创建了一个新文件。它工作正常。然后我替换了旧的 .vimrc 文件,一切似乎都正常。猜猜这是因为我正在使用的某些插件中存在一些问题。

但是接受 ZyX 的回答,因为它认为我是另一种方式来做到这一点。

最佳答案

想知道这条线是在 filetype … on 之前还是之后。在前一种情况下,您应该尝试将它(您的自动命令)放在这一行之后。如果将其放入 ~/.vim/ftdetect/markdown.vim 并使用 setfiletype markdown 而不是 setlocal ft=markdown 会更好:

augroup filetypedetect
    autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown :setfiletype markdown
augroup END

: 这是做这些事情的默认方式。在这种情况下,~/.vim 必须位于 /usr/share/vim/* 选项中的 'runtimepath' 路径之前(默认情况下)。

关于vim - 在vim中根据文件扩展名更改文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767024/

相关文章:

vim 自定义语法高亮

vim - 如何使用vim删除每行中的最后一个字符

Vim 绑定(bind)一些与文件类型不同的热键

editor - Vim 一步一步 : How do you line up arbitrary text by arbitrary delimiter?

vim - 如何在 vim 中语法突出显示多个空格分隔的字段?

c++ - Vim 中突出显示的类和函数名

macos - 在 mac 上使用自定义 vimrc 会导致语法高亮丢失

vim - 如何使用 vim-rails 覆盖 gf

vim - vim是否能够检测文件的自然语言,然后加载正确的字典?

c - 我如何教 vim 语法高亮的附加 C 语言类型?