【问题标题】:vim c++11 constexpr highlightvim c++11 constexpr 高亮
【发布时间】:2014-09-22 11:33:58
【问题描述】:

新的 c++ 关键字 constexpr 没有被 vim 高亮显示。我试过这样的插件: http://www.vim.org/scripts/script.php?script_id=4617

它对除 constexpr 之外的所有其他东西都非常有效。

有谁知道如何在我的 cpp.vim(或使用其他方法)中为 constexpr 打开语法高亮显示?

【问题讨论】:

  • 只需将该关键字添加到您使用的任何语法脚本中,然后将补丁发送给它的维护者。

标签: c++11 vim


【解决方案1】:

在 vim 7.4(可能更早,但我已经安装了 7.4)中,constexpr 应该由标准的 cpp.vim 文件设置,它应该是您安装的一部分。

然而,它在cpp_no_cpp11 变量的测试中受到保护:

" C++ 11 extensions
if !exists("cpp_no_cpp11")
  syn keyword cppType       override final
  syn keyword cppExceptions noexcept
  syn keyword cppStorageClass   constexpr decltype
  syn keyword cppConstant   nullptr
endif

你可以:echo exists("cpp_no_cpp11");如果结果为 1,这将解释为什么您看不到突出显示(不过,您必须诊断您的配置以查看它为什么被设置)。

或者,您可以使用蛮力方法并放置

syn keyword cppStorageClass constexpr

在您的.vimrc 中(以及您想要的任何其他内容;似乎您也会缺少decltype 等)。或者,您可以将命令放入通过autogroup 加载的脚本文件中,或者如果您想在方法上更加温和,可以使用“after”目录(如您链接的插件)。

(请注意,您链接的插件根本不会尝试添加 C++11 关键字突出显示,至少对于 constexpr 不会。它主要关注函数和类型名称。)

【讨论】:

  • 谢谢你的回答,原来高亮没有打开,因为我没有加载正确的颜色方案(我试图在它的 vundle 行之前加载颜色方案,并将块放在 try catch所以没有检测到错误..),默认方案已加载,并且碰巧没有为 c++11 关键字使用特殊颜色。非常感谢您提供的提示,了解它们非常有用!
猜你喜欢
  • 2011-01-19
  • 2020-04-08
  • 2017-12-20
  • 1970-01-01
  • 2012-08-16
  • 2013-01-31
  • 2012-02-03
  • 2014-11-14
  • 2012-04-18
相关资源
最近更新 更多