未检测到文件类型

未检测到文件类型

我正在使用 vim 尝试名为的模板系统车把,我安装了一个 vim 插件获得 *.handlebars 的一些语法突出显示。如果我这样做,我可以获得着色::set filetype=handlebars,但是当我打开模板时,它是单色的。我的 .vim 文件夹如下所示:

.
|-- autoload
|   `-- pathogen.vim
|-- bundle
|   |-- handlebars
|   |   |-- example.handlebars
|   |   |-- ftdetect
|   |   |   `-- handlebars.vim
|   |   |-- ftplugin
|   |   |   `-- handlebars.vim
|   |   |-- indent
|   |   |   `-- handlebars.vim
|   |   |-- MIT-LICENSE
|   |   |-- README.md
|   |   `-- syntax
|   |       `-- handlebars.vim

我可以尝试什么来获得自动文件类型检测?

这是handlebars.vim 的内容:

if has("autocmd")
  au BufNewFile,BufRead *.handlebars,*.hbs set filetype=handlebars
endif

我想我有 autocmd,因为 :autocmd 输出了一些东西。

更新

这是我的 .vimrc 的内容:

call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
syntax on
set softtabstop=2 
set shiftwidth=2
set tabstop=2
set expandtab
set number
set background=dark
set laststatus=2 
set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P
colorscheme solarized
filetype on
filetype plugin on

如果有人想看一下,这是我的 .vim 文件夹:https://github.com/greg0ire/dotvim

答案1

第一的。编辑 .hbs 或 .handlebars 文件之一时,:set ft?在 vim 中发出命令,看看是否检测到您的文件类型。

如果您没有看到filetype=handlebars,请尝试:filetype on在您的.vimrc文件并再次测试。

如果这不起作用,您可能需要添加一个文件类型.vim文件在你的.vim目录。

if exists("did_load_filetypes")
  finish
endif
augroup filetypedetect
  au! BufRead,BufNewFile *.hbs,*.handlebars setf handlebars
augroup END

将此另存为$HOME/.vim/文件类型.vim

  • 这实际上是 .vim 目录中的“filetype.vim”,而不是handlebars.vim。

然后:set ft?在新的 vim 会话中再试一次。

$HOME/.vim/ftplugin 目录中的 handlebars.vim 文件应包含编辑 .hbs 文件时想要显示的任何内容的语法规则,例如这里这个

答案2

我终于自己找到了答案。我的 .vimrc 文件顶部的两个病原体调用所做的事情不足以考虑着色。使用这个调用就达到了目的:

call pathogen#infect()

相关内容