我正在使用 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()