【问题标题】:Powershell >6.0... command line background color with ANSI sequences (PSReadLine) ?how?Powershell >6.0... 带有 ANSI 序列 (PSReadLine) 的命令行背景颜色?怎么样?
【发布时间】:2020-11-14 16:13:13
【问题描述】:

在 PowerShell >6.0 中,我可以使用以下命令更改命令行 FOREGROUND 颜色:

Set-PSReadLineOption -Colors @{ Keyword="#0FAFE0"; Variable="#987ABC" }+

但是如何使用 RGB 更改背景颜色??? (#RRGGBB)
我可以看到一些带有 ASCII 控制台序列的示例
但没有 RGB 格式

【问题讨论】:

标签: powershell command-line colors psreadline


【解决方案1】:

我不认为你可以? SelectionColor 使用白底黑字的 ansi 转义码:“`e[30;47m”(`e 为 ps 7)。 https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

维基百科页面上的这个怎么样:

ESC[ 38;2;⟨r⟩;⟨g⟩;⟨b⟩ m -- 选择RGB前景色

ESC[ 48;2;⟨r⟩;⟨g⟩;⟨b⟩ m -- 选择RGB背景色

红色前景 (255 0 0) 蓝色 (0 0 255) 背景。

Set-PSReadLineOption -Colors @{ variable = "`e[38;2;255;0;0m" + # fg
                                           "`e[48;2;0;0;255m" } # bg

在 ps5 中你必须说 $([char]0x1b) 而不是 `e。

$e = [char]0x1b
Set-PSReadLineOption -Colors @{ variable = "$e[38;2;255;0;0m" + # fg
                                           "$e[48;2;0;0;255m" } # bg

【讨论】:

  • 就是这样...同时我阅读了关于 ANSI 控制序列历史的非常有趣的维基百科文章...我推荐它 -> "en.wikipedia.org/wiki/ANSI_escape_code"
  • 我不清楚Select 部分。这是一个 PS 命令还是它来自哪里?
  • @KonradViltersten 这只是维基百科文档的引用。
  • 啊。哈哈哈。我真傻。在降价中,它看起来像是一个关键字或其他东西。我尝试了它并用谷歌搜索了它,但找不到任何东西。该网站可能认为您正在编写 SQL 语句或其他内容。
猜你喜欢
  • 2011-03-18
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 2019-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多