修复Sublime Text 3 Clojure语法突出显示(特别是Regex)

时间:2013-12-15 19:18:00

标签: clojure sublimetext3

Sublime Text 3的Clojure语法突出显示经常在正则表达式上/之后中断。我看到Anthony Grimes在Sublime Text Forum上发现了这一点:http://sublimetext.userecho.com/topic/82983-clojure-regexes-are-not-parsed-properly/

建议回答:

  

Clojure.tmLanguage内尝试更改

     

<string>source.regexp.oniguruma</string>

     

     

<string>#string_escape</string>

Clojure.tmLanguage在哪里?在我进行更改后,我是否只是将其保存到位? (见Where to put .tmLanguage in sublime text 3?

我在Sublime Text 3目录中看到了这个:

$ tree -L 1
.
├── Cache
├── Index
├── Installed\ Packages
├── Local
└── Packages

Cache内,我看到Clojure/Clojure.tmLanguage.cache,但这可能不对。

更新:我使用的是Mac OS X 10.9。

更新:我正在查看 Where are .tmLanguage files stored for ST3

更新:此处还详细介绍了其他Clojure语法问题:http://www.sublimetext.com/forum/viewtopic.php?f=3&t=14077

更新:我尝试通过首先将Clojure.tmLanguage.cache重命名为Clojure.tmLanguage.zip来解压缩.cpgz文件。那很奇怪;当我尝试解压缩它们时,我得到了.zip和{{1}}文件的交替和无限循环。见:discussion.apple.com/thread/1446784

1 个答案:

答案 0 :(得分:6)

如果您要更改Sublime Text 3中默认包中的项目,我高度建议您通过@skuroda安装PackageResourceViewer。它允许您从默认存储位置打开,查看,编辑和提取包(因操作系统而异),并将它们放在Packages/PackageName中,覆盖默认值。

安装完插件后,转到Preferences -> Package Settings -> PackageResourceViewer -> Settings - User并粘贴以下内容:

{
    "single_command": false
}

这只是在Command Palette中为您提供了一些额外的选项。接下来,点击 P 并输入prv以显示PackageResourceViewer个选项。选择Edit Package Resource并导航至Clojure -> Clojure.tmLanguage。进行搜索和替换,并保存文件,该文件现在位于Packages/Clojure/Clojure.tmLanguage,以防您需要再次编辑 - 您将能够像普通文件一样打开它。

要回答原始问题,在OS X上,原始.sublime-package文件位于/Applications/Sublime Text.app/Contents/MacOS/Packages。但是,永远不应该直接修改这些文件,因为 a)您可能很容易破坏某些内容,而 b)它们会在升级时被覆盖,因此任何更改都将丢失。

祝你好运!


顺便说一下,如果你使用的是Clojure并想要一些更好的语法高亮显示,那就是一个小插件:我是Neon Color Scheme的维护者,我刚刚发布了一个新版本,其中包含对Clojure更具体的支持,除了已经存在的东西。我的配色方案的目标是尽可能多地使用尽可能多的语言,充分利用.tmLanguage定义文件中尽可能多的范围。我刚刚开始学习Clojure,语言定义相当丰富,因此有很多机会可以进行特定于上下文的突出显示。看看,请let me know你的想法!