最佳 Ansi Escape 开头

2023-12-31

哪个 Ansi 转义序列是最便携和/或最好的,为什么?

1. "\u001B[32;1mThis is bright green\u001B[0m"
2. "\x1B[33;1mThis is bright yellow\x1B[0m"
3. "\e[35;4;1mThis is bright purple underlined\e[0m"

我一直在使用printf "\x1B[32;1mgreen\x1B[0m"(例如,这是 unix bash 脚本中的一个示例)出于习惯,但我想知道是否有任何理由使用其中一个而不是另一个。其中一款比其他的更便携吗?这是我的假设。

另外,如果您知道任何其他 Ansi Escape 序列,请随时在评论中或在答案末尾分享。

如果您不知道 Ansi Escape 序列是什么或者想更熟悉它,那么您可以:http://en.wikipedia.org/wiki/ANSI_escape_code http://en.wikipedia.org/wiki/ANSI_escape_code

NOTE:

上面的所有转义序列都适用于我使用过的所有 Unix 系统,但是仍然必须依赖系统本身来解释转义码。例如,Windows 确实not允许除四种转义码之外的任何类型的转义码(BEL、L-F 或换行符、C-R 或回车符,当然还有 BS 或退格键),因此 Ansi 转义序列将不起作用。


简短回答:这取决于主机字符串解析器。


长答案:

这取决于字符串解析器;也就是说,实际接受字符串的代码段("\x1b[1mSome string\x1b[0m") 作为文字并解析转义字符 http://en.wikipedia.org/wiki/Escape_character使用反斜杠ANSI 转义序列 http://en.wikipedia.org/wiki/ANSI_escape_code.

  • 对于支持十六进制转义的解析器(\x), then \x1b(字符 0x1B)应该可以工作。
  • 对于支持八进制转义的解析器(\ddd), then \033(八进制 33)应该可以工作。
  • 对于支持 unicode 转义的解析器(\u), then \u001B应该管用。

快速阐述:\x and \u相似;\x通常指单个字符,0-255,h十六进制基数。\u含义相同(以十六进制表示),但支持两个字节(在大多数解析器中)并且通常指 16 位u尼科德字符。


正如您提到的,较少使用/支持的转义字符是\e。这种转义最常用于期望发生大量 ANSI 转义的解析器/语言,例如 bash(以及大多数其他 shell)。

例如,Node.js https://nodejs.org/不支持\e:

> console.log("\x1b[31mhello\x1b[0m")
hello
undefined
> console.log("\e[31mhello\e[0m")
e[31mhelloe[0m
undefined

也不Lua http://www.lua.org/:

> print('\x1b[31mhello\x1b[0m')
hello
> print('\e[31mhello\e[0m')
stdin:1: invalid escape sequence near '\e'

Or even Python https://www.python.org/:

>>> print("\x1b[31mhello\x1b[0m")
hello
>>> print("\e[31mhello\e[0m")
\e[31mhello\e[0m
>>>

Though PHP http://php.net/ does:

<?php
echo "\x1b[31mhello\x1b[0m\n"; // hello
echo "\e[31mhello\e[0m\n"; // hello
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最佳 Ansi Escape 开头 的相关文章

  • 这个字符序列“\033[H\033[J””在 C 中起什么作用? [复制]

    这个问题在这里已经有答案了 我在一些随机网站上浏览过以下奇怪的字符序列 当编译并执行时 该序列清除了终端中所有先前的内容 它清除输出流中的缓冲区还是仅清除 tty 缓冲区 int main printf 033 H 033 J return
  • ANSI 转义代码在 python 解释器上不起作用 [重复]

    这个问题在这里已经有答案了 ANSI 代码无法在我的 python 解释器上运行 我想为这个项目的一些印刷品上色 我查找了如何为打印字符着色并找到了 ANSI 转义码 因此我在解释器上尝试了它 但它不起作用 例如 print 033 32m
  • ANSI 颜色转义序列列表

    在大多数终端上 可以使用以下命令对输出进行着色 033ANSI 转义序列 我正在寻找所有支持的颜色和选项 例如明亮和闪烁 的列表 由于支持它们的终端之间可能存在差异 因此我主要对 xterm 兼容终端支持的序列感兴趣 您正在寻找的 ANSI
  • R 提示符中存在错误的 ANSI 转义序列

    当 R 在支持颜色的终端中交互运行时 可以使用 ANSI 转义序列在提示中添加颜色 例如 options prompt 033 0 31mThis is red 033 0m gt Unfortunately something goes
  • 使用 PHP 将 ANSI 转义序列转换为 HTML

    这是一个类似的问题this one https stackoverflow com questions 245121 a library to convert ansi escapes terminal formatting color c
  • 上标和下标有 Ansi 转义序列吗?

    我正在玩弄 ANSI 转义序列 例如 echo e e 91mHello e m 在 Linux 控制台上显示彩色文本 现在我尝试使用上标和下标输出 例如a b I read here http www inwap com pdp10 an
  • 将 ANSI 转义(终端格式/颜色代码)转换为 HTML 的库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个代码库 可以通过普通标签或 CSS 将 ANSI 转义序列转换为 HTML 颜色 例如
  • 最佳 Ansi Escape 开头

    哪个 Ansi 转义序列是最便携和 或最好的 为什么 1 u001B 32 1mThis is bright green u001B 0m 2 x1B 33 1mThis is bright yellow x1B 0m 3 e 35 4 1
  • Tkinter 是否可以识别 ANSI 转义字符?

    我正在尝试打印一条消息tk Text盒子 该消息是返回搜索结果的函数的结果 我希望消息的格式设置为仅标题为粗体 结果为普通文本 search results append self text BOLD Top Tracks for arti
  • 如何在scala中清除终端/屏幕

    我需要清除 Scala 中的控制台屏幕 我尝试过标准 ANSI 清晰屏幕 建议为 终端控制 清屏 通过 Rosettacode orghere https rosettacode org wiki Terminal control Clea
  • 解析 ANSI 转义码?

    我正在用 C 构建一个 telnet 应用程序 用于在老式 BBS 系统上编写门游戏脚本 例如 Wildcat 但似乎无法为 ANSI 转义码 例如光标移动 着色等 构建一个可用的解析器 几乎所有系统我 已经测试过发送不符合任何 标准 的未
  • ansi 转义序列在 Windows cmd 提示符下不起作用

    我尝试了 ANSI 转义序列 例如 033 K 033 dd 033 dG等等 在 AIX 中 当我在Windows中使用telnet时 它不起作用 使用腻子也可以正常工作 我不想使用 NCURSES 但是printfs 任何想法将不胜感激
  • Terminal.app 可以遵循 ANSI 转义码吗?

    我注意到 随着TERM环境变量设置为xterm or xterm 256colorMac OS X 的 Terminal app 实用程序尊重大多数 ANSI 转义码 至少当这些转义码涉及更改文本颜色时 例如 echo e 033 0 31
  • 什么是回车、换行和换页?

    以下控制字符的含义是什么 回车符 换行 换页 回车符表示返回当前行的开头而不向下前进 这个名字来自打印机的托架 因为在创造这个名字时显示器还很少见 这通常被转义为 r 缩写为 CR 并且具有 ASCII 值 13 或 0xD Linefee
  • 是否可以在 Windows 中从 PHP 5 启用 VT100/ANSI 转义码

    我正在将旧的 PHP 5 应用程序升级到 PHP 7 我使用 Codeception 进行单元测试 因为它具有漂亮的颜色输出 可以轻松查看所有测试是否已通过 我尝试过的事情 升级到 PHP 7 应用程序崩溃 在没有特殊标志的情况下运行 Co
  • 寻找支持 ANSI 转义码的 UserControl

    我正在寻找处理具有 ANSI 转义码的传入 telnet 文本 对于赏金 我正在寻找一个完整的实现 我可以将文本附加到缓冲区的末尾 控件应该是可滚动的 但在用户滚动到视图之外时仍然能够处理附加文本 光标定位等 例如 e 0 32mHello
  • vim :AnsiEsc - 如何默认打开它们?

    我有带有彩色日志条目的日志文件 假设扩展名为 smt2 其中颜色由 ansi 转义码定义 我安装了vim插件基于AnsiEsc vim http www vim org scripts script php script id 302 现在
  • emacs shell 命令输出不显示 ANSI 颜色,但显示代码

    当我做M 在我的 emacs 21 4 中 ANSI 代码是字面意思 例如 ls color 0m 0m05420273 pdf 0m 0m100829 Ba o1 pdf 0m 有没有办法同时使用颜色和UTF8 同样的问题已经被之前在SO
  • 有没有办法从 ANSI 转义字符创建橙色?

    我正在寻找一个控制代码来使用 ANSI 或其他标准在终端中创建橙色文本 这可能吗 我只看到黄色和红色可用 并且我认为您不能将红色和黄色混合用于同一角色 严格来说 不 ANSI 从未标准化任何被称为 橙色 的东西 对于终端的控制序列 有些终端
  • Windows 控制台支持 ANSI 吗?

    Windows 控制台支持 ANSI 控制字符吗 默认情况下它不支持许多 ANSI 控制字符 维基百科文章中也提到了这一点 http en wikipedia org wiki ANSI escape code http en wikipe

随机推荐