我正在寻找一种方法来确定 vim 中文件的文件类型并根据文件类型设置语法突出显示。唯一的问题是我不能使用文件扩展名来确定文件类型。
这是我的场景:我使用vimdiff
orgvimdiff
作为我的P4DIFF
工具,它显示了本地副本中的文件与 perforce 服务器中的文件之间的更改。Perforce 似乎将文件从 perforce 服务器引入 /tmp 目录并使用PID
来命名文件,例如:
/tmp/tmp.24673.23
这是针对 C++ 源文件的。
我在 perforce 存储库中遇到的最常见的文件类型是 C/C++ 源文件和头文件、Makefile、python 脚本、perl 脚本、ruby 脚本和 tcl 脚本。
我已经研究过使用
modeline
,但我们树中的大多数源都没有在文件中嵌入此信息。这篇文章提到了一种搜索和识别魔法模式的可能方法。我找不到任何能获得高成功率的一致魔法模式。
尝试
file
在我的 linux 机器上使用二进制文件来查看我得到的结果。它似乎可以很好地识别 C/C++ 源,但对于 Makefile 甚至 python 脚本(没有 hashbang)都失败了
一件好事是,在比较的 2 个文件中,右侧的文件来自我的本地副本,因此具有正确的文件名和扩展名,从而为右侧的文件正确启用了语法突出显示。
有没有办法可以利用它为左侧显示的文件设置相同的语法突出显示?
也欢迎对此问题的任何替代解决方案。