我想根据vim
中的文件扩展名更改文件类型。
我的.vimrc
autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown setlocal ft=markdown
但是当我使用扩展名.md
文件打开文件时,文件类型不会更改。我运行:set ft
命令,它将输出显示为filetype=modula2
。
我做错了吗?
编辑:
我开始通过重命名旧.vimrc
文件进行调试,并使用此行创建了一个新文件。它运作正常。然后我替换了我的旧.vimrc
文件,一切似乎都运行正常。猜猜是因为我正在使用的一些插件中存在一些问题。
但接受ZyX的答案,因为它认为我是另一种方法。
答案 0 :(得分:6)
我使用此行创建了一个~/vim/ftdetect/markdown.vim
文件
autocmd BufNewFile,BufRead *.md,*.mkdn,*.markdown :set filetype=markdown
读取文件类型的文档,setfiletype
仅设置是否取消设置文件类型。因此,您需要使用set
无条件更改文件类型。
答案 1 :(得分:1)
想知道这条线是在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'
(默认情况下会这样)。
答案 2 :(得分:1)
通过在Vim \ vim74 \ syntax目录中创建目标语法文件的重命名副本,我能够获得备用文件扩展名的语法高亮显示。
要将* .md打开为.markdown:
copy markdown.vim md.vim
或将markdown.vim的副本粘贴到语法文件夹,然后重命名副本md.vim。
(在win7上运行vim74)