我有一个带有非典型命名约定的Perl文件(例如file = test.cfg),* .cfg是我vim安装中现有文件类型的已知文件扩展名。是否有vimrc设置会告诉vim使用shebang值,无论文件扩展名是什么?我知道我可以将# vim: set filetype=perl :
作为替代解决方案放在文件本身中。我希望vim首先看看@ shebang值,然后是文件扩展名。
#!/usr/bin/perl
my $var = "please highlight me";
答案 0 :(得分:3)
通常,静态文件模式比较(在filetype.vim
中)是在检测之前运行的,基于内容(在scripts.vim
中),但由于它都是Vimscript,所以没有什么能阻止你搞乱那个顺序。
如果这只是.cfg
扩展名和Perl脚本,请将以下内容放入~/.vim/filetype.vim
:
if exists('did_load_filetypes')
finish
endif
augroup filetypedetect
autocmd BufNewFile,BufRead *.cfg if getline(1) =~# '^#!/usr/bin/perl\>' | setf perl | endif
augroup END