我最近开始使用 Sublime Text 2。多么棒的编辑器。它在突出显示 Ruby 代码方面做得很好,但没有突出显示我的 Gemfile。
有没有办法让它做到这一点?
我找到了这个要点,但它没有关于如何使用它的说明。
我最近开始使用 Sublime Text 2。多么棒的编辑器。它在突出显示 Ruby 代码方面做得很好,但没有突出显示我的 Gemfile。
有没有办法让它做到这一点?
我找到了这个要点,但它没有关于如何使用它的说明。
至少有三个选项:
"Gemfile"
到 Ruby 语法文件列表1.没有解释,但很方便的技巧
您可以绑定击键来设置语法,而无需移动鼠标。
Ctrl-Opt-Space我通过将以下内容添加到我的用户键绑定中来绑定语法更改:
[
{ "keys": ["ctrl+alt+space"],
"command": "show_overlay",
"args": { "overlay": "command_palette", "text": "Set Syntax: " } }
]
2. 添加"Gemfile"
到 Ruby 语法文件列表
~/.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")
如果您在这里但使用的是 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
ST2 的 DetectSyntax 插件为突出显示文件提供了更全面的解决方案 - 它允许基于规则突出显示文件。理解 Rails 文件、其他.rb
用作扩展的文件和标准 ruby 文件之间的区别是足够聪明的。
标准规则包括Gemfile
、Rakefile
和Guardfile
其他与 Ruby 匹配的语法格式。
您可以通过复制 User/ 文件夹中的 HTML.tmLanguage 文件来实现此目的,这样它就不会被更新覆盖。