我正在 NodeJS 中将一些日志和图表写入 .log 和 .txt 文件。我用粉笔给我的原木上色,让事物脱颖而出。我还使用asciichart生成一些低保真但非常有用的图表。
\n据我了解,这两个库都使用转义序列来为文本着色,即\\x1b[32m绿色、\\x1b[31m红色等。这些转义序列在由终端控制台解释时,会打印为实际颜色。对于“如何更改 node.js 的控制台字体颜色?”这个问题的回答很好地解释了这一点。
我希望能够在实际文本文件中看到类似颜色的文本。显然,文本文件无法显示颜色,但我想知道是否存在一种方法来查看文本文件,以便处理/解析转义字符并显示颜色,与终端控制台中发生的方式相同。
\n例如,将彩色 asciichart 图表写入文件在 vscode 中如下所示:
\n\n显然,文本文件\\x1b[34m\xe2\x95\xad\\x1b[0m\\x1b[34m\xe2\x94\x80\\x1b[0m只会这样显示。
有谁知道任何 vscode 扩展、vscode 自定义语言设置或任何其他与此相关的文本查看器,它们能够查看 .txt 或 .log 文件,以便转义字符用于为文本着色,而不是上面显示为一大堆文字?(这可以写为 vscode 扩展/自定义语言设置吗?)。虽然问题https://unix.stackexchange.com/questions/262185/display-file-with-ansi-colors有一些很好的提示,但它最终只显示如何在终端中查看文件,而不是在更用户界面中查看文件友好的文件查看器。
\n我\033[K \033[%dd \033[%dG在AIX中尝试过类似ANSI的转义序列.当我在Windows中使用telnet时,它不起作用.使用putty也能正常工作.
我不想使用NCURSES,但是printf.任何想法将不胜感激.
我有一个程序可以读取 Minecraft 控制台输出,并将其放入 Qt 文本编辑字段中(不相关)。然而,Minecraft 控制台使用 ANSI 颜色代码 ( [0;32;1m) 来输出颜色,我希望它们采用 HTML 格式(因为 Qt 文本编辑字段可以读取该颜色)。
我进行了一些研究,发现了一堆需要样式表的解决方案,这不是我想要的。我想要的是一个简单的<span style="color: green"></span>或类似的内联。
谁能帮助我实现这个目标?
我正在尝试测试一些打印ANSI转义码的函数.例如
// Print a line in a color
func PrintlnColor(color string, a ...interface{}) {
fmt.Print("\x1b[31m")
fmt.Print(a...)
fmt.Println("\x1b[0m")
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用Examples来做,但他们似乎不喜欢转义码.
有没有办法测试写入stdout的内容?
是否有任何已知的终端支持上,下,前,后光标键的ANSI转义序列:
CSI n A Cursor Up
CSI n B Cursor Down
CSI n C Cursor Forward
CSI n D Cursor Back
Run Code Online (Sandbox Code Playgroud)
但是不支持save-cursor-position和restore-cursor-position转义序列?
CSI s Save Cursor Position
CSI u Restore Cursor Position
Run Code Online (Sandbox Code Playgroud) 我有一个日志文件,其中包含各种文本周围的 ansi 颜色代码。我使用 powershell 语言命令将其回显到控制台:
get-content logfile.log -wait
Run Code Online (Sandbox Code Playgroud)
这样我就可以看到最新的日志更改。但是,所有 ansi 颜色代码都显示为文本字符,例如:
Esc[90mEsc[39m
Run Code Online (Sandbox Code Playgroud)
如何在 powershell 窗口中将它们解释为颜色代码?
还不太熟悉 powershell 语言,是否有 powershell 命令或编码选项来处理这个问题?我已经阅读了各种 powershell 文档,但没有在其中找到任何有关这些 ansi 代码的内容。
我正在写一个“libansi”。我想捕获 ansi 序列 \x1b[6n 的返回代码我尝试了一些解决方法,但无济于事。
例子:
#!/usr/bin/python3.4
rep = os.popen("""a=$(echo "\033[6n") && echo $a""").read()
Run Code Online (Sandbox Code Playgroud)
代表返回“\033[6n”...
有人有主意吗?
感谢帮助。
编辑:我有一个部分解决方案:
a=input(print("\033[6n", end='')
Run Code Online (Sandbox Code Playgroud)
但这需要我在输入时按“回车”才能获取光标位置。
我需要澄清一下,我不打算为日志输出着色,我只对写入syslog.
所以这里是场景,我有一个systemd运行脚本的单元服务,它指示 Bash 中的 256 种颜色。
这是服务单元文件:
[Unit]
Description=Bash Color Service
[Service]
Type=simple
EnvironmentFile=/etc/environment
ExecStart=/home/username/colors.sh
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=bashcolors
Restart=on-failure
RestartSec=10
User=username
Group=username
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是下面的 Bash 脚本/home/username/colors.sh(从这里抓取):
#!/bin/bash
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, …Run Code Online (Sandbox Code Playgroud) 我在一些随机网站中浏览了以下奇怪的字符序列。当编译和执行时,这个 Sequence 清除了终端中所有以前的内容。它是清除输出流中的缓冲区还是只清除 tty 缓冲区?
int main()
{
printf("\033[H\033[J");
return 0;
}
Run Code Online (Sandbox Code Playgroud) ansi-escape ×10
colors ×3
c ×2
python ×2
terminal ×2
bash ×1
batch-file ×1
go ×1
html ×1
ide ×1
linux ×1
powershell ×1
python-3.4 ×1
ruby ×1
syslog ×1
systemd ×1
tail ×1
testing ×1
windows ×1