【问题标题】:How to define default syntax on files without extension on Sublime Text 2?如何在 Sublime Text 2 上定义没有扩展名的文件的默认语法?
【发布时间】:2013-05-14 06:53:37
【问题描述】:

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

正如标题中所说,我想为所有没有扩展名的文件定义默认语法。就我而言,我想使用 Shell 语法。

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

我已经尝试过“applySyntax”包,但它似乎不适用于此配置:

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

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

谢谢!

【问题讨论】:

  • 您为规则指定的正则表达式与您要执行的操作不匹配。试试PRE_.*$。注意.。您指定的内容映射到PREPRE_PRE__ 等。基本上添加了更多下划线。

标签: shell syntax-highlighting sublimetext2


【解决方案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

你可以去Preferences->Browse Packages,把它以.py结尾,我建议为它创建一个目录(例如DetectFileType/detect_file_type.py)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多