在Sublime Text 2中为没有扩展名的文件指定语法

时间:2013-04-30 16:39:41

标签: sublimetext2

我的rails项目中有一个文件Guardfile,但只是以纯文本显示,因此每次打开时都必须分配ruby语法才能正确显示它。
我无法使用Open all with current extension as...,因为它没有扩展名,但我想我可以为没有扩展名的文件指定特定语法,因为GemfileCapfile或{{1}等文件正确显示。 我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:11)

菜单:首选项 - >浏览器包

然后打开文件Ruby \ Ruby.tmLanguage

查找此块:

<array>
    <string>rb</string>
    <string>rbx</string>
    <string>rjs</string>
    <string>Rakefile</string>
    <string>rake</string>
    <string>cgi</string>
    <string>fcgi</string>
    <string>gemspec</string>
    <string>irbrc</string>
    <string>capfile</string>
    <string>Gemfile</string>
</array>

添加新条目:

    <string>Guardfile</string>

答案 1 :(得分:3)

安装facelessuser / ApplySyntax。它有一个内置的Guardfiles规则。对于应该设置为特定语法的其他随机文件也是有益的。例如,这是我为随机文件设置的应该具有Bash语法的文件。

"syntaxes": [
  {
    "name": "ShellScript/Shell-Unix-Generic",
    "rules": [
      {"file_name": ".*random$"}
    ]
  }
]

name值是Packages中tmLanguage文件的路径。 ShellScript 是tmLanguage文件所在的Packages文件夹的名称。 Shell-Unix-Generic 是tmLanguage文件名。

答案 2 :(得分:1)

对于Sublime 3:

  1. Commmand + Shift + p:set syntax ruby​​
  2. 偏好 - &gt;设置 - 特定于语法
  3. 添加如下语法:

    {
        "extensions": [
            "Gemfile",
            "Gemfile.lock",
            "Podfile",
            "Podfile.lock",
            "Manifest.lock",
            "Fastfile_helper",
            "Fastfile",
            "Appfile"
        ]
    }
    
  4. 真正糟糕的是语法不支持模糊匹配,正则表达式。这意味着您必须列出所有文件。