【问题标题】:Assign syntax to a file without an extension in Sublime Text 2在 Sublime Text 2 中为没有扩展名的文件分配语法
【发布时间】:2013-04-30 16:39:41
【问题描述】:

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

【问题讨论】:

  • 我对同一个文件有同样的问题。

标签: sublimetext2


【解决方案1】:

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

然后打开文件 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>

【讨论】:

  • 在 Sublime 3 中找不到提到的 Ruby 包。
  • 对于 Sublime 3 打开一个 Ruby 文件,然后从右下角的对话框中选择"Open all with current extension as ...",或者转到Preferences -&gt; Settings -Syntax Specific(打开一个名为"Ruby.sublime-settings" 的文件);添加这个:{ "extensions": [ "Guardfile", "Rakefile", "Gemfile", ] }
【解决方案2】:

安装facelessuser / ApplySyntax。它有一个内置的 Guardfile 规则。它也适用于其他应设置为某种语法的随机文件。例如,这是我为应该具有 Bash 语法的 random 文件设置的。

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

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

【讨论】:

  • 太好了,我去看看,谢谢。顺便说一句,我正在检查,似乎他们制作了原始项目的一个分支,与 subl 2 和 3 兼容,并且至少出现在包控件中。 github.com/facelessuser/ApplySyntax
  • DetectSyntax 已被删除,因为开发人员不再支持它。当 facelessuser 接管支持时,开发人员要求将名称更改为 ApplySyntax(因为它是对插件功能的更好描述)。
  • 我一定已经安装了原始版本,谷歌搜索显示了分叉版本。我会替换链接。谢谢。
  • ApplySyntax 也支持{"interpreter": "bash"} 选项。自动为我的没有扩展名的 bash 脚本工作,这些脚本以前被识别为 NAnt 构建文件太棒了
【解决方案3】:

对于崇高 3:

  1. Commmand + Shift + p: 设置语法红宝石
  2. 首选项 -> 设置 - 特定语法
  3. 添加如下语法:

    {
        "extensions": [
            "Gemfile",
            "Gemfile.lock",
            "Podfile",
            "Podfile.lock",
            "Manifest.lock",
            "Fastfile_helper",
            "Fastfile",
            "Appfile"
        ]
    }
    

真正糟糕的是语法不支持模糊匹配,正则表达式。这意味着您必须列出所有文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 2013-07-07
    • 1970-01-01
    • 2013-08-10
    • 2014-04-09
    • 2012-05-21
    • 2014-04-27
    • 1970-01-01
    相关资源
    最近更新 更多