20

我最近开始使用 Sublime Text 2。多么棒的编辑器。它在突出显示 Ruby 代码方面做得很好,但没有突出显示我的 Gemfile。

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

我找到了这个要点,但它没有关于如何使用它的说明。

4

4 回答 4

34

至少有三个选项:

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

1.没有解释,但很方便的技巧

您可以绑定击键来设置语法,而无需移动鼠标。

Ctrl-Opt-Space我通过将以下内容添加到我的用户键绑定中来绑定语法更改:

[
  { "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
  • 操作系统: ~/Library/Application Support/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage
  • 视窗: %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")
于 2011-12-22T18:03:08.850 回答
5

如果您在这里但使用的是 Sublime Text 3,您可能无法在包中找到“Ruby 语法文件列表”。

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

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

选择 ruby​​ 后,转到 Preferences -> Settings-More -> Syntax Specific-User

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

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

在 Ubuntu 中,这些文件存储在

~/.config/sublime-text-3/Packages/User
于 2015-01-06T23:25:41.030 回答
2

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

标准规则包括GemfileRakefileGuardfile其他与 Ruby 匹配的语法格式。

请参阅GitHub 上的 DetectSyntax

于 2012-06-07T05:59:43.227 回答
-1

您可以通过复制 User/ 文件夹中的 HTML.tmLanguage 文件来实现此目的,这样它就不会被更新覆盖。

于 2012-04-11T15:44:42.557 回答