[英]How to print \[ and \] to terminal from python?
我能夠使用諸如print "\\033[31m red text \\033[0m"
代碼將python的ANSI顏色代碼從python打印到終端,該命令以紅色打印“ red text”。
但是,在換行時,終端仍會計算不可見的控制字符,因此文本會不正確地換行,就好像行比實際的要長。 反向搜索也很奇怪,顯示的文本與光標下的實際內容不匹配。
以下鏈接(和其他鏈接) https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Regular_user_2似乎表明我需要將顏色代碼包裝在\\[
和\\]
以便終端可以將光標正確放置在屏幕。 但是,當我在python中print "\\[\\033[31m\\]"
時,括號會顯示在屏幕上。
如何從python將\\[
和\\]
控制字符發送到終端?
(我發現顏色庫(例如colored
)有相同的問題)
請勿在顏色代碼周圍使用[]。 只需創建以下變量即可。
red = '\033[31m'
print red
基於@chepner的評論-我的問題涉及修改終端中的PS1
變量以獲得彩色提示。
從python直接打印\\[
和\\]
可以在屏幕上顯示這些字符,但是當傳遞給PS1
,這些字符是不可見的,彩色文本可以正確顯示並正確包裝在屏幕上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.