2011-12-22 67 views
19

我最近开始使用Sublime Text 2.真棒编辑器。它在突出显示Ruby代码方面做得非常好,但它不会突出显示我的Gemfile。如何在Sublime Text 2中为我的Gemfile启用语法高亮显示?

有没有办法让它做到这一点?

我找到了this Gist,但它没有说明如何使用它。

+0

你大概可以告诉编辑器应用的Ruby语法高亮。毕竟gemfile是ruby语法。但是,那么,你把什么放到你的gemfile中。你不是把你的整个轨道应用程序放在那里,是吗? – three 2011-12-22 17:42:52

+1

@three,根本不是!只要我打开Gemfile,就没有语法突出显示。我只是找到了选项。它不记得了。我每次打开文件都必须这样做。 :/ – Mohamad 2011-12-22 17:49:29

回答

34

至少有三种选择:

  1. 开关语法手动(不推荐使用,但简单;无需解释)
  2. 添加"Gemfile"到Ruby的语法文件
  3. 使用列表您链接到的插件并为其创建一个包装

1.没有解释,但方便的把戏

你可以绑定键盘设置语法,而不必移动鼠标。

我势必语法通过添加以下到我的用户键绑定改为按Ctrl-OPT-空间

[ 
    { "keys": ["ctrl+alt+space"], 
    "command": "show_overlay", 
    "args": { "overlay": "command_palette", "text": "Set Syntax: " } } 
] 

2.添加"Gemfile"到Ruby的语法文件列表

  • Linux:~/.config/sublime-text-2/Packages/Ruby/Ruby.tmLanguage
  • OS X:~/Library/Application Support/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage
  • 的Windows:%APPDATA%/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage

您也可以通过菜单选项Preferences -> Browse Packages并进入了Ruby包到达那里。一旦你在文件中,它将是显而易见的:它是<array>元素与Ruby看文件名。添加<string>Gemfile</string>,你就全部了。

设置可能会在升级时被覆盖;我不确定它是如何与ST2 –一起工作的,它可能会更清晰地通过代码执行,如代码片段所示。

3.使用您链接到

更多的工作片段(和一个语法错误的校正)。您可以手动执行此操作,方法是在Packages(参见上面的位置)中创建一个目录,或者创建一个实际的软件包并允许ST2进行安装。

我创建了一个测试包叫做"Syntax"和复制的片段进去,重新启动ST2,并打开一个Gemfile发挥预期。校正需要额外的冒号(new gist),概括地说:

elif name[-3] == "erb": # Needed a semi-colon here. 
    set_sintax(view, "HTML (Rails)", "Rails") 
+1

在OSX上,它是〜/ Library/Application Support/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage。我把它放在 Rakefile的正下方。这也一直困扰着我。谢谢你;并要求穆罕默德! – Unixmonkey 2011-12-22 18:23:08

+0

@Unixmonkey哦,对;我想补充一点,但分心。我认为python的方法更有趣,但是运行起来更麻烦(主要是因为在终于打开控制台视图之前我没有注意到的语法错误:/ – 2011-12-22 18:28:12

+0

谢谢,@DaveNewton!如果有一种方法为了确保这不会被更新到Ruby包(即移动到用户范围设置文件),我很乐意听到它。 – 2012-01-15 23:03:19

-1

您可以通过复制在用户/文件夹中的文件HTML.tmLanguage,这样就不会被更新覆盖实现这一目标。

+0

这是如何影响Gemfile的语法突出显示的? – 2012-04-12 01:23:27

2

ST2的DetectSyntax插件为突出显示文件提供了更全面的解决方案 - 它允许基于规则的文件高亮显示。了解Rails文件与其他使用.rb作为扩展名的文件和标准ruby文件之间的区别足够聪明。

标准规则包括Gemfile,Rakefile,Guardfile和其他与Ruby for Syntax格式相匹配的规则。

请参阅DetectSyntax on GitHub

4

如果你在这里,但正在使用Sublime Text 3,你可能无法在软件包中找到'Ruby-syntax files'列表。

网上发现的大多数其他解决方案都让我感到困惑。

我通过在Sublime Text 3中打开文件时手动将Gemfile更改为Ruby的右下角文件扩展名菜单项来解决此问题(这是我每次打开文件到现在为止都一直在做的事情)。

一旦你选择了红宝石然后去首选项 - >设置 - 更多 - >语法特定用户

{ 
    "extensions": 
    [ 
    "Gemfile", 
    "Gemfile.lock" 
    ] 
} 

当您导航到语法特定的用户它打开特定的文件具有语言文件语法突出显示。您可能需要将文件更改回默认设置(我的是'Rd(R Documentation).sublime-settings'),并从该语法高亮文件中删除Gemfile。

在Ubuntu中,这些文件存储在

~/.config/sublime-text-3/Packages/User 
相关问题