我正在尝试在中创建自己的 Powershell 提示符$profile
。
目前,我有以下内容:
$ESC = [char]27
$RESET = "$ESC[0m"
$pwd = $executionContext.SessionState.Path.CurrentLocation
function prompt {
$fontColor = "2;192;192;192m"
$backColor = "2;64;96;128m"
$shdwColor = "2;32;48;64m"
$main = "$RESET$ESC[38;$fontColor$ESC[48;$backColor"
$shadow = "$RESET$ESC[38;$backColor$ESC[48;$shdwColor"
$end = "$RESET$ESC[38;$shdwColor"
# "$main $pwd $shadow $end ";
# "$main $pwd $shadow $end$RESET ";
# "$main $pwd $shadow $end$ESC[0m ";
# "$main $pwd $shadow $end$ESC[0 ";
# "$main $pwd $shadow $end $RESET";
# "$main $pwd $shadow $end $ESC[0m";
return "$main $pwd $shadow $end $ESC[0";
}
渲染结果如下:
当我输入ls
或dir
(例如)时,一切正常。
但是,当我键入一个字符串时,我的尾随零(从$ESC[0
)显示为红色,而当我关闭字符串时,零的颜色变为白色。
$RESET
当我放置或$ESC[0m
代替$ESC[0
(但用“m”代替“0”)时也会出现这种情况,而当我删除它们时,它会
显示为红色......
我们还可以看到,在默认的 Powershell 提示符中,当我们打开一个字符串时,“>”会变成红色:
有人在制作提示时遇到过同样的问题吗?如果是,您是如何去除这种颜色的,或者您是如何适应的?
谢谢 !