突出显示没有在已知文件类型上查看shebang行的语法

时间:2014-10-26 21:00:22

标签: vim

我有一个带有非典型命名约定的Perl文件(例如file = test.cfg),* .cfg是我vim安装中现有文件类型的已知文件扩展名。是否有vimrc设置会告诉vim使用shebang值,无论文件扩展名是什么?我知道我可以将# vim: set filetype=perl :作为替代解决方案放在文件本身中。我希望vim首先看看@ shebang值,然后是文件扩展名。

#!/usr/bin/perl
my $var = "please highlight me";

1 个答案:

答案 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