Sublime文本:如何自定义语法高亮?

sky*_*red 12 sublimetext sublimetext2

我使用Smarty生成html模板.我目前使用html突出显示,这是很好的,除了它不突出smarty标签,{foreach} 我尝试安装Smarty包,但这看起来不是很好.

所以基本上我需要能够将大括号中的任何内容添加到标准HTML着色中.如何才能做到这一点?

Nat*_*ate 24

背景

@MattDMo是正确的,.tmTheme文件是控制突出显示的主要文件.它是一个带有一系列正则表达式和标签的XML文件,表示哪个RegEx匹配哪种类型的语法元素.

您可以在GitHub上搜索并找到许多已经创建了包含.tmTheme文件的Sublime Text包的人.请注意,您可以直接使用为TextMate创建的包,因为Sublime Text使用相同的约定.(这是真的,至少只要.tmTheme.tmPreferences文件去.)

例如,我能够直接采用最初为TextMate制作的ChucK语言的语法高亮包,并使用SublimeText2.在.tmTheme通过复制与TextMate中使用的文件立即工作.我刚删除了其他垃圾文件,然后对其进行了一些更改.tmTheme,并添加了对包管理器的支持.

在这里查看该项目:https://github.com/nathanleiby/ChucK.tmbundle.

如何安装新语法

包装控制

理想情况下,您已经想要的语法包含在Sublime Text Package Control中可供下载.在Package Control中搜索并直接安装.(如果你还没有Package Control,你必须得到它:https://github.com/wbond/package_control_channel/)

手动

如果您下载.tmTheme文件或.tmBundle直接下载文件,则需要将其复制到ST中相应的包文件夹中.请注意,有一个/Packages文件夹和一个/Packages/User文件夹.ST2文档建议复制到后者,因为即使在更新期间擦除/修改主文件夹中的其他包,也可以保证保留.

在OSX上,该目录是: ~/Library/Application Support/Sublime Text 2/Packages/User/

(注意:您可能更喜欢git clone将软件包放入此文件夹中,以便您可以轻松更新它.)

如何创建自己的

如果您想深入了解并自定义语法高亮,那么这里有一些入门的地方.

  • 刷上你的正则表达式.
  • 用于语法定义的Sublime Text文档
  • <ctrl> + <shift> + p.每当您查看文件时,选择任何单词并按下此组合键,然后查看页脚栏.您应该看到一系列语法描述.例如:我刚刚在我正在查看的SQL文件中突出显示了一个单词,响应是:source.sql string.other.quoted.backtick.sql.
  • 您可能更喜欢使用JavaScript/JSON而不是XML来解析语法.使用PackageDev.您可以通过Package Control获得此功能.它具有允许您在.json(JSON)和.tmTheme(XML)文件之间来回切换的命令.
  • StackOverflow上相关问题.

警告

这可能是显而易见的,但语法高亮的有用性与您在Sublime Text中选择的Color Scheme有关.(Sublime Text 2 - > Preferences - > Color Scheme - > ...)

我还没有机会详细探索/验证这一点,但似乎有些颜色方案可以区分更多/更少类型的语法元素.

因为这个原因,我强烈推荐"Monokai"配色方案(特别是"Monokai Soda"变体) - 它似乎"带出了色彩".


Mat*_*DMo 2

您可能需要修改.tmTheme为通过将语法设置为 Smarty 定义的范围添加自定义突出显示。Smarty.tmlanguage目录中应该有一个文件Packages/Smarty/Syntaxes。它是 XML,因此对于休闲阅读来说可能有点困难,但如果您了解正则表达式并且范围被智能命名,您应该能够弄清楚如何修改您的主题。