更改 SublimeREPL shell 颜色
Change SublimeREPL shell colour
我使用 SublimeText3 并尝试更改 SublimeREPL Shell 的颜色,因为它全是白色。那可能吗?或者是否可以使用系统提示符中的颜色,例如 PS1=''
?我 运行 ubuntu。我还没有找到解决方案。
我假设您正在尝试为 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 for the various parts of the prompt you want to highlight, then you'll need to alter your color scheme's .tmTheme
file to actually style the scopes. (If you're using the ST3 dev builds and have Build 3084 or newer, you can also use the new YAML-based .sublime-syntax
格式而不是基于 XML 的 .tmLanguage
格式。)
如果您不使用开发版本,编写语法定义的最佳方式是使用精彩的 PackageDev
package. I maintain an alternate - and better :) - syntax definition for Python,而我 much 更喜欢使用 PackageDev 的 .YAML-tmLanguage
格式,正如您所知,它也是基于 YAML,但早在新的 "official" .sublime-syntax
格式之前就已经存在了,当然它们是不兼容的。但是,从 YAML-tmL 转换为 tmL 到 sub-syn 并再次转换回来非常容易,所以没什么大不了的。
但是,正如我所说的,语法定义的内容将根据提示的确切结构以及您要对其执行的操作而有所不同。对于以下示例,我假设您有默认的 Ubuntu user@hostname:/present/working/directory$
提示符。要创建一个新的语法定义,在安装 PackageDev 之后,select 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:
-
...
第一行必填,不要乱写。 name
随心所欲。 scopeName
显然是基本作用域的标识符,可能类似于 source.shell.prompt
。 fileTypes
可以留空,uuid
也可以留空。
如果您想了解这些文件的工作原理,请随时查看 PythonImproved.YAML-tmLanguage
on Github, and also make use of the Sublime Text Unofficial Documentation page on the subject as well as the reference. There's also some info in PackageDev's 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
后,保存文件,打开命令面板,然后 select PackageDev: Convert (YAML, JSON, PList) to...
。这将构建 .tmLanguage
文件并将其放在与 .YAML-tmLanguage
文件相同的目录中。如果它不在 Packages
目录树下,请将其复制到您的 Packages/User
目录,然后按照第一段中的描述修改 Main.sublime-menu
文件。最后,打开配色方案的 .tmTheme
文件并编辑它以添加在新语法中定义的范围。保存它,重新启动 Sublime 以备不时之需,您应该已经准备就绪!
我使用 SublimeText3 并尝试更改 SublimeREPL Shell 的颜色,因为它全是白色。那可能吗?或者是否可以使用系统提示符中的颜色,例如 PS1=''
?我 运行 ubuntu。我还没有找到解决方案。
我假设您正在尝试为 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 for the various parts of the prompt you want to highlight, then you'll need to alter your color scheme's .tmTheme
file to actually style the scopes. (If you're using the ST3 dev builds and have Build 3084 or newer, you can also use the new YAML-based .sublime-syntax
格式而不是基于 XML 的 .tmLanguage
格式。)
如果您不使用开发版本,编写语法定义的最佳方式是使用精彩的 PackageDev
package. I maintain an alternate - and better :) - syntax definition for Python,而我 much 更喜欢使用 PackageDev 的 .YAML-tmLanguage
格式,正如您所知,它也是基于 YAML,但早在新的 "official" .sublime-syntax
格式之前就已经存在了,当然它们是不兼容的。但是,从 YAML-tmL 转换为 tmL 到 sub-syn 并再次转换回来非常容易,所以没什么大不了的。
但是,正如我所说的,语法定义的内容将根据提示的确切结构以及您要对其执行的操作而有所不同。对于以下示例,我假设您有默认的 Ubuntu user@hostname:/present/working/directory$
提示符。要创建一个新的语法定义,在安装 PackageDev 之后,select 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:
-
...
第一行必填,不要乱写。 name
随心所欲。 scopeName
显然是基本作用域的标识符,可能类似于 source.shell.prompt
。 fileTypes
可以留空,uuid
也可以留空。
如果您想了解这些文件的工作原理,请随时查看 PythonImproved.YAML-tmLanguage
on Github, and also make use of the Sublime Text Unofficial Documentation page on the subject as well as the reference. There's also some info in PackageDev's 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
后,保存文件,打开命令面板,然后 select PackageDev: Convert (YAML, JSON, PList) to...
。这将构建 .tmLanguage
文件并将其放在与 .YAML-tmLanguage
文件相同的目录中。如果它不在 Packages
目录树下,请将其复制到您的 Packages/User
目录,然后按照第一段中的描述修改 Main.sublime-menu
文件。最后,打开配色方案的 .tmTheme
文件并编辑它以添加在新语法中定义的范围。保存它,重新启动 Sublime 以备不时之需,您应该已经准备就绪!