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

Sud*_*dar 2 vim vim-syntax-highlighting

我想根据文件扩展名更改文件类型vim.

我在我的代码中有以下代码 .vimrc

autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown setlocal ft=markdown
Run Code Online (Sandbox Code Playgroud)

但是当我使用扩展.md文件打开文件时,文件类型不会更改.我运行:set ft命令,它显示输出为filetype=modula2.

我做错了吗?

编辑:

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

但接受ZyX的答案,因为它认为我是另一种方法.

xdg*_*xdg 6

~/vim/ftdetect/markdown.vim用这一行创建了一个文件

autocmd BufNewFile,BufRead *.md,*.mkdn,*.markdown :set filetype=markdown
Run Code Online (Sandbox Code Playgroud)

读取文件类型的文档,setfiletype仅设置是否取消设置文件类型.因此,您需要使用set无条件更改文件类型.


ZyX*_*ZyX 4

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

\n\n
augroup filetypedetect\n    autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown :setfiletype markdown\naugroup END\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n