如何在Sublime Text 2中为我的Gemfile启用语法高亮显示?

Moh*_*mad 20 ruby syntax-highlighting ruby-on-rails-3 sublimetext

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

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

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

Dav*_*ton 34

至少有三种选择:

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

1.没有解释,但是方便

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

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

[
  { "keys": ["ctrl+alt+space"], 
    "command": "show_overlay", 
    "args": { "overlay": "command_palette", "text": "Set Syntax: " } }
]
Run Code Online (Sandbox Code Playgroud)

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

  • Linux的: ~/.config/sublime-text-2/Packages/Ruby/Ruby.tmLanguage
  • OS X: ~/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预期打开一个工作.修正需要额外的冒号(新要点),简言之:

elif name[-3] == "erb": # Needed a semi-colon here.
  set_sintax(view, "HTML (Rails)", "Rails")
Run Code Online (Sandbox Code Playgroud)


Jay*_*een 5

如果您在这里但使用Sublime Text 3,您可能无法在包中找到"Ruby语法文件列表".

在线发现的大多数其他解决方案让我感到困惑.

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

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

{
  "extensions":
  [
    "Gemfile",
    "Gemfile.lock"
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

在Ubuntu中,这些文件存储在

~/.config/sublime-text-3/Packages/User
Run Code Online (Sandbox Code Playgroud)