如何在Sublime Text 2上没有扩展名的文件上定义默认语法?

时间:2013-05-14 06:53:37

标签: shell syntax-highlighting sublimetext2

我已经阅读了很多关于这个问题的帖子,但没有人回答我的问题。

如标题中所述,我想为没有扩展名的所有文件定义默认语法。在我的情况下,我想使用Shell语法。

我尝试过“查看/语法/打开所有当前扩展名为...”但是对于所有文件,我必须再次进行操作。

我已尝试过“applySyntax”软件包,但似乎无法使用此配置:

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

我的所有文件都以“PRE_ [something]”开头,有人知道如何解决这个问题吗?

THX!

1 个答案:

答案 0 :(得分:1)

我发现a Gist有一个插件可以根据文件名设置语法,我修改了一下以匹配以PRE_开头的文件:

import sublime_plugin
import os

class DetectFileTypeCommand(sublime_plugin.EventListener):
  def on_load(self, view):
    filename = view.file_name()
    if not filename: # buffer has never been saved
      return

    name = os.path.basename(filename)
    if name.startswith("PRE_"):
      set_syntax(view, "Shell-Unix-Generic", "ShellScript")


def set_syntax(view, syntax, path=None):
  if path is None:
    path = syntax
  view.settings().set('syntax', 'Packages/'+ path + '/' + syntax + '.tmLanguage')
  print "Switched syntax to: " + syntax

您可以转到偏好设置 - >浏览套餐,并以.py结尾保存,我建议为其创建一个目录(例如DetectFileType/detect_file_type.py)。