只有在输入字符后退格擦除bash提示
问题描述:
新的Linux用户在这里。只有在输入字符后退格擦除bash提示
我的bash提示符看起来是这样的:
export PS1=$"\[\e[1;32m\d \t \e[1;33mฅ^\e[m\e[1;36mᵒ\e[m\e[1;33mﻌ\e[m\e[1;36mᵒ\e[m\e[1;33m^ฅ \e[1;35m\W\e[1;32m$\]"
(这是一个小猫咪ฅ^ᵒﻌᵒ^ฅ
)
现在,我已经添加了]
到字符串的结尾,它不再删除我的bash提示符提示为空时的字符。但是,一旦我开始输入命令然后按退格键,它会删除我的bash提示符。
有没有办法来防止这种情况,还是这只是一个bash的东西?
谢谢!
答
\[...\]
表示包含的部分在提示中不占用任何空间。因此,它们将用于xterm控制序列(\e[1;32m
等),而不是提示文本(\d
,\t
等)。尝试是这样的:如果你的整个提示被包裹在\[...\]
PS1='\[\e[1;32m\]\d \t\[\e[1;33m\]ฅ^\[\e[m\e[1;36m\]ᵒ\[\e[m\e[1;33m\]ﻌ\[\e[m\e[1;36m\]ᵒ\[\e[m\e[1;33m\]^ฅ\[\e[1;35m\]\W\[\e[1;32m$\]'
,然后bash的认为你需要提示没有空间可言,和打字开始在该行的开始。
(你不需要出口PS1
,顺便说一句。)
更好的解释比我的+1 –
这美丽的工作。感谢您为我清理! – spacedSparking