Vimscript:未加载文件类型

Vimscript:未加载文件类型,vim,cygwin,Vim,Cygwin,我不熟悉vimscript,也不了解它的工作原理。我想将其安装到我的配置中:我将其直接放在我的.vim目录中,这可能是我出错的地方 它有一个~/.vim/ftdetect/twee.vim文件,我对它做了一些修改。看起来是这样的: " markdown filetype file if exists("did\_load\_filetypes") echom "I put this here" finish endif augroup twee

我不熟悉vimscript,也不了解它的工作原理。我想将其安装到我的配置中:我将其直接放在我的.vim目录中,这可能是我出错的地方

它有一个~/.vim/ftdetect/twee.vim文件,我对它做了一些修改。看起来是这样的:

" markdown filetype file
if exists("did\_load\_filetypes")
        echom "I put this here"
        finish
endif

augroup twee
        au! BufRead,BufNewFile *.twee,*.tw   setfiletype twee
        autocmd BufRead,BufNewFile *.twee,*.tw    compiler twee
augroup END
我补充说,这是我自己的回声。每当我打开一个扩展名为.twee的文件时,它就会打印出回声。但是当文件打开时,如果我键入:set filetype?它打印出:filetype=

我做错了什么?我如何让它运行这个自动组?顺便说一句,如果我在本地缓冲区中设置filetype=twee,语法高亮显示将正常工作

答案是:

有许多不同的文件类型检测方法; 你把他们两个弄糊涂了

我不太明白ftdetect目录是如何工作的,但是 :help ftdetect表示如果要添加文件类型 通过将文件放入“ftdetect”来检测新文件类型 目录,该文件应仅包含自动命令,例如

    au BufRead,BufNewFile *.wibble set filetype=wibblewobble
请注意,没有!在au之后,命令是 设置文件类型,而不是“设置文件类型”。还请注意,帮助条目显示:

...there is no "augroup" command, this has already been
done when sourcing your file.
另一方面,如果通过创建 拥有~/.vim/filetype.vim文件,然后将 您在上面使用的命令,即

    if exists("did_load_filetypes")
      finish
    endif
    augroup filetypedetect
      au! BufRead,BufNewFile *.wibble setfiletype wibblewobble
    augroup END