我正在寻找一种方法来确定vim文件的文件类型,并根据文件类型设置语法高亮。唯一的问题是,我不能使用文件扩展名来确定文件类型。
我的情况是:我使用vimdiff或gvimdiff作为我的P4DIFF工具,它显示了我本地副本中的文件与来自Perforce服务器的文件之间的更改。Perforce似乎将文件从Perforce服务器带入/tmp目录并使用PID命名文件,例如:
我的情况是:我使用vimdiff或gvimdiff作为我的P4DIFF工具,它显示了我本地副本中的文件与来自Perforce服务器的文件之间的更改。Perforce似乎将文件从Perforce服务器带入/tmp目录并使用PID命名文件,例如:
/tmp/tmp.24673.23
这是一个C++源文件。
在perforce代码库中,我经常遇到的文件类型包括C/C++源文件和头文件、Makefile、Python脚本、Perl脚本、Ruby脚本和Tcl脚本。
我尝试使用
modeline
,但我们的代码库中大部分源文件都没有嵌入此信息。这篇文章提到了一种可能的方法来搜索和识别魔术模式。但我无法找到任何一致的魔术模式,能够得到高成功率。
我尝试在我的Linux机器上使用
file
二进制文件来查看结果。它似乎可以很好地识别C/C++源文件,但对于Makefile甚至Python脚本(它们没有hashbang),则失败了。
好的一点是,在比较的两个文件中,右侧的文件来自我的本地副本,因此具有正确的文件名和扩展名,因此对于右侧的文件启用了正确的语法突出显示。
有没有办法利用这一点来设置左侧显示的文件相同的语法突出显示?
对于这个问题的任何替代解决方案也欢迎。