【问题标题】:String class color in Sublime Text 3Sublime Text 3中的字符串类颜色
【发布时间】:2014-06-15 23:27:43
【问题描述】:

我刚刚试用了 Sublime Text 3,一切都很顺利,除了一个问题:我无法更改 string 类的颜色。所有其他功能,类型都有自己可以更改的颜色,但无论我使用什么主题,string 类始终是前景色。 namespace 似乎也发生了同样的问题。有什么办法可以改变它们吗?没有什么严重的或功能上的牵连,我只是一个小完美主义者。

附:我找到了 .tmlanguage 文件,并使用从 c++ 11 包中复制的另一个代码解决了 namespace 问题。如果您能告诉我要将哪些代码添加到 .tmlanguage 文件以使 string 类工作,那将是最好的。谢谢

【问题讨论】:

  • Sublime Text 使用 Textmate 格式的主题,请参阅 here 了解如何创建/编辑它们。

标签: sublimetext3


【解决方案1】:

在Sublime中,是配色方案 .tmTheme文件负责对不同范围的元素进行着色,定义如下语言定义 .tmLanguage 文件。几乎所有字符串都被定义为string 范围的一部分,许多配色方案,包括Sublime 中包含的大多数配色方案,只有string 的单一颜色。我对这些配色方案的一个问题是,它们通常基于少数几种颜色,并在许多不同的范围内重复使用它们——Monokai 及其衍生品是这种罪行的主要罪犯,恕我直言。如果您想更改string 范围的颜色,您需要找到并编辑与您的配色方案关联的.tmTheme 文件。

在 Sublime Text 3 中,通过 Package Control 安装 @skuroda 的 PackageResourceViewer 插件最容易实现。安装后,打开命令面板并输入 prv,然后选择 PackageResourceViewer: Open Resource。如果您希望修改其中一个内置主题,请向下导航至 Color Schemes - Default,按 Enter 或单击,然后滚动列表,直到找到您的配色方案的名称重新使用。点击 Enter 或单击它,将打开一个 XML 文件。搜索<string>string(确保您没有打开正则表达式搜索),您应该会找到您要查找的部分。将十六进制颜色代码编辑为更可口的内容,保存文件,您的视图将自动更新。

顺便说一句,如果您正在寻找一种复杂的、色彩丰富的配色方案,其颜色定义几乎适用于任何范围,我建议您查看Neon Color Scheme,也可以通过 Package Control 获得。如果您好奇,以下是使用完整的C++11 语法定义时您的代码 sn-p 的外观:

如果你愿意,你可以随时修改它,或者为你自己的作品取件。祝你好运!

【讨论】:

  • 谢谢,非常详细。我确实使用PackageResourceViewer 尝试编辑.tmtheme 文件和.tmlanguage 文件。但是,我仍然遇到的问题(并且它仍然存在于您的方案中)是关键字string,而不是字符串本身。同样的问题也出现在关键字cout 和许多其他关键字上。我不知道如何在评论中附上图片,所以我在主帖中附上了另一张图片以显示我真正想要的(这是我从 Xcode 截取的截图,未经任何修改)。
  • @JupiterM - 您使用的是 C++11 语法定义吗?如果可以,我会看看它,看看我是否可以添加对stringcout 关键字的支持。我不是 C++ 程序员,有你想要包含的关键字列表吗?
  • sublime text 3 中没有 C++11,所以我使用的是默认的 C++ 语法。至于 Xcode,我使用的是默认的,所以我假设它是 C++11 语法。我发现方案中有问题包括string 类、namespace 类及其类型、不同的流函数,例如coutcinifstream等谢谢
  • @MattDMo - 我刚刚下载了Neon,看起来你的配色方案中还没有包含string 类。
  • @MattDMo:它们是 C++ 标准模板库中的一个类,称为 。如果您在上面的屏幕截图中注意到,在第 7 行,类名称没有突出显示/着色。最初的发帖人希望类类型“string”被着色,就像它是原始类型一样,如 int、float、char 等。你明白吗?
【解决方案2】:

您可能应该尝试不同的语法高亮,有几个类似 C 语言的包可通过 Package Control 获得

【讨论】:

  • 这是配色方案的问题,不是语法定义的问题
  • 我找到了一个“语法管理器”,它没有任何关于如何“管理”语法的自述文件……您有什么具体建议吗?
  • @MattDMo 我在不改变配色方案的情况下测试了一些语法定义(例如 C++11),它确实改变了语法的颜色!
  • @idleberg - 是的,没错,但在string 的列表中,无论使用何种语法,它都不应该改变。
猜你喜欢
  • 2014-03-06
  • 2018-12-30
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 2015-01-14
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多