2

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

例如,如果我要开始一个新文件并输入:

#include <stdlib.h>

我希望它自动开始使用 C 语法高亮显示,比如在我按下回车键之后,其他语言(如 Python)也是如此。

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

谢谢,西蒙

4

2 回答 2

4

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

您可以通过重新触发检测

:filetype detect

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

于 2013-04-09T09:13:49.860 回答
1

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

:setf c

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

:file x.c

(这不会保存文件。)

如果您确实想要自动猜测,您将使用 autocmd 来触发它,然后可以猜测文件类型是否&ft为空(即,如果它还没有这样做)。

于 2013-04-09T09:08:05.277 回答