如何让 ST3 构建输出窗口呈现颜色?
我正在使用 gccfilter 为我的构建输出着色,但 ST3 只显示原始转义序列。有什么方法可以让它处理它们吗?或者删除 gccfilter 并仅让 ST3 为输出着色(例如,只需在警告和错误上 grep 就可以了)?
答案1
ST3 的 Makefile 构建系统的最新版本(如Make.sublime-build 文件) 已经包含产生彩色输出的语法定义。
如果您对此不满意,您可以采取以下替代且通常可行的方法:如果您有一个在终端中生成 ANSI 颜色的构建系统,并且希望它们显示在 Sublime Text 3 的构建输出面板中。
这是我在 RSpec 的 Sublime Text 3 安装中执行的操作,但我认为在任何情况下,使用在常规控制台/TTY 中产生颜色的工具,它都完全适用:
1. 强制您的构建系统输出颜色,即使它没有输出到 TTY。
这取决于构建系统。例如,对于 Ruby 和 RSpec,您可以.rspec
在项目中创建一个包含以下内容的文件:
--color --tty
就您而言,您已经有一个可以生成带有 ANSI 颜色转义序列的输出的构建系统。
2. 安装ANSIescape (SublimeANSI) 包
建议通过 Package Control 安装。请参阅包的 repo 以获取安装和配置说明。
3. 在 Sublime Text 中创建一个新的构建系统定义,并配置它以识别 ANSI 颜色
例如,这是我的Colorized RSpec.sublime-build
构建系统的内容:
{
"cmd": ["rspec", "-I ${file_path}", "$file"],
"file_regex": "# ([A-Za-z:0-9_./ ]+rb):([0-9]+)",
"working_dir": "${project_path:${folder:${file_path}}}",
"selector": "source.ruby.rspec",
// Recognize ANSI colors in the output
"target": "ansi_color_build",
"syntax": "Packages/ANSIescape/ANSI.tmLanguage"
}
最后两个配置选项取自SublimeANSI 的自述文件。您可以将其应用于 Make 的构建系统。您可以基于当前版本的Make.sublime-build
来自 Sublime Text 3 包的文件。
4. 使用新创建的构建系统构建您的文件/项目。
使用“构建方式...”菜单选择新的构建系统。在 OS X 上,这是Cmd + Shift + B
。后续构建Cmd + B
将使用最后选择的构建系统。
它看起来是这样的:
答案2
目前没有办法让 ST3 控制台解析我发现的颜色。这需要与作者讨论。我之前注意到控制台总是单色输出。ST3 目前仅使用您为其应用的主题所提供的颜色。
摆脱转义序列的唯一方法是在输出到达 Sublime 之前将其过滤掉。