【问题标题】:Change SublimeREPL shell colour更改 SublimeREPL 外壳颜色
【发布时间】:2015-10-20 21:13:15
【问题描述】:

我使用 SublimeText3 并尝试更改 SublimeREPL Shell 的颜色,因为它全是白色的。那可能吗?或者是否可以使用来自系统提示的颜色,如 PS1='' ?我在ubuntu上运行。我还没有找到解决方案。

【问题讨论】:

    标签: sublimetext3 sublimerepl


    【解决方案1】:

    我假设您正在尝试为 SublimeREPL shell 中的提示着色 - 如果您想要您键入的命令的语法突出显示,只需将语法更改为 Shell Script (Bash)。要永久执行此操作,请打开您的 Packages 文件夹 (Preferences -> Browse Packages...),浏览到 SublimeREPL/config/Shell,然后将 Main.sublime-menu 作为 JSON 文件打开。第 26 行包含 "syntax" 设置;只需将值更改为"Packages/ShellScript/Shell-Unix-Generic.tmLanguage",保存文件,下次启动时将应用语法。

    但是,如果您只是想为提示着色,您将有更多 工作要做。首先,您必须创建一个自定义 .tmLanguage 语法定义文件,为要突出显示的提示的各个部分创建 scopes,然后您需要更改配色方案的 .tmTheme 文件以实际设置样式范围。 (如果您使用的是 ST3 dev builds 并且拥有 Build 3084 或更高版本,您还可以使用基于 YAML 的新 .sublime-syntax 格式,而不是基于 XML 的 .tmLanguage 格式。)

    如果您不使用开发版本,编写语法定义的最佳方法是使用出色的 PackageDev 包。我维护了一个替代 - 和更好的 :) - syntax definition for Python 并且我非常更喜欢使用 PackageDev 的 .YAML-tmLanguage 格式,你可以看出它也是基于 YAML,但早在新的“官方”.sublime-syntax 格式,当然它们是不兼容的。但是,从 YAML-tmL 到 tmL 到 sub-syn 再转换回来很容易,所以没什么大不了的。

    但是,正如我所说,您的语法定义的内容将根据提示的确切结构以及您想要对其执行的操作而有所不同。对于以下示例,我假设您有默认的 Ubuntu user@hostname:/present/working/directory$ 提示符。要创建新的语法定义,安装 PackageDev 后,选择 Tools -> Packages -> Package Development -> New Syntax Definition,您将获得以下信息:

    # [PackageDev] target_format: plist, ext: tmLanguage
    ---
    name: Syntax Name
    scopeName: source.syntax_name
    fileTypes: []
    uuid: 7e1549b3-fb0b-44fc-a153-78a7fc2157c2
    
    patterns:
    - 
    ...
    

    第一行是必须的,不要乱用。您可以随意制作namescopeName 显然是基本作用域的标识符,可能类似于 source.shell.promptfileTypes 可以留空,uuid 也可以单独留空。

    如果您想了解这些文件应该如何工作,请随时查看 Github 上的 PythonImproved.YAML-tmLanguage,并使用关于该主题的 Sublime Text 非官方文档 page 以及reference。 PackageDev 的README 也有一些信息。

    我将让您开发其余的正则表达式,但这里有一个匹配用户名以帮助您入门:

    # [PackageDev] target_format: plist, ext: tmLanguage
    ---
    name: Shell Prompt
    scopeName: source.shell.prompt
    fileTypes: []
    uuid: 7e1549b3-fb0b-44fc-a153-78a7fc2157c2
    
    patterns:
    - name: meta.username.prompt
      match: ^([A-Za-z_][A-Za-z0-9_-]{0,31})(?=@)
    ...
    

    你可以看到它在工作here

    .YAML-tmLanguage 完成后,保存文件,打开命令面板,然后选择 PackageDev: Convert (YAML, JSON, PList) to...。这将构建.tmLanguage 文件并将其放在与.YAML-tmLanguage 文件相同的目录中。如果它不在Packages 目录树下,请将其复制到您的Packages/User 目录,然后按照第一段所述修改Main.sublime-menu 文件。最后,打开您的配色方案的.tmTheme 文件并对其进行编辑以添加新语法中定义的范围。保存它,重新启动 Sublime 以确保一切顺利!

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 2011-09-26
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多