gpt4 book ai didi

c++ - 我可以让 vim 对没有扩展名的 C++ 头文件进行语法突出显示吗?

转载 作者:IT老高 更新时间:2023-10-28 22:25:28 24 4
gpt4 key购买 nike

我有一个项目,其中包含一堆遵循标准 C++ 头文件命名约定的 C++ 头文件;也就是说,名为 Foo 的类将在名为 Foo 的文件中声明,而不是在 Foo.hFoo.hh 文件中。有没有一种好方法可以将 vim 配置为仅对这些文件进行语法高亮显示?一个稍微不那么令人愉快的后备方案是为所有没有扩展名的文件启用 C++ 样式的突出显示。我不确定是否有任何更复杂的方法来检测文件类型,而不是仅仅依靠其扩展名。

最佳答案

您可以为此使用 modeline 功能。模式允许您在文件的前几行/最后几行的注释中设置某些选项。

这使它成为设置编码指南和折叠参数的好地方。出于安全原因,某些选项无法设置。见 the documentation了解更多信息。

把它放在文件的顶部或底部:

/* vim: set ft=cpp: */

编辑:更多细节,由评论提示:):

仅在启用模式行时才有效。在正常情况下,它应该是默认的。要确保它已启用,或更改检测到的区域的大小,请在 .vimrc 中设置 modeline 选项:

set modelines=5

将确保在每个文件的前五行或后五行中检测到上面引用的行。

在模式行中,setlocal表示为加载文件的缓冲区设置选项。ft选项,也称为filetype , 决定了语法高亮语言。 cpp 值是 C++ 文件使用的值。

编辑 2:没有模式行,如果你能识别出一个神奇的模式,那就做更多的工作:

au BufRead * if search('MagicPattern', 'nw') | setlocal ft=cpp | endif

含义:每次打开文件时,检查"MagicPattern"是否在里面。如果是,则将其视为 C++。模式参数是正则表达式的vim方言;查看帮助模式了解详情。

关于c++ - 我可以让 vim 对没有扩展名的 C++ 头文件进行语法突出显示吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com