Vim - 猜测基于输入的编程语言?

时间:2013-04-09 08:52:06

标签: vim input syntax-highlighting

有没有人知道如何让vim根据您的输入猜测新文件的编程语言并使用适当的语法突出显示?到目前为止,语法高亮只有在知道文件扩展名(保存之后)才有效,这很好,但有时我很懒,想要创建一个新文件而不保存到以后。

e.g。如果我要开始一个新文件并输入:

#include <stdlib.h>

我希望它能自动开始使用C语法高亮显示,比如输入后输入,对于像Python这样的其他语言也是如此。

我有点像vim的菜鸟,不知道vimscript,所以请不要太复杂了。任何帮助表示赞赏。

谢谢,西蒙

2 个答案:

答案 0 :(得分:4)

Vim使用文件路径/名称/扩展名和某些特征文件内容来检测文件类型;使用的内容取决于具体的类型。

您可以通过

重新触发检测
:filetype detect

对于C / C ++,检测基于文件扩展名。要添加基于内容的检测,您必须自己编写;有关详细信息,请参阅:help new-filetype-scripts。在实践中,我建议在需要时手动:setf c

答案 1 :(得分:1)

这可以安排,但性能可能是一个小问题(取决于你想要多聪明),并且手动设置语法要容易得多:

:setf c

您还可以设置缓冲区文件名;这将相应地设置语法,通常:

:file x.c

(这不保存文件。)

如果你真的想要自动猜测,那么你将使用autocmd来触发它,然后如果&ft为空则可以猜测文件类型(即如果它还没有这样做)。