我在我的 bashrc 中用这个自定义了我的 bash
export PS1="\e[0;36m\h\e[m \e[0;33m\w/\e[m \e[0;31m\n\$ ?\e[m "
Run Code Online (Sandbox Code Playgroud)
所以我得到了这样的东西(带有颜色):
Ahuri ~/Public/
$ ?
Run Code Online (Sandbox Code Playgroud)
但是我在使用长命令时遇到了问题。当我写一个比一行长的很长的命令时,它开始覆盖我的第一行
例子 :
Ahuri ~/Public/
$ ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
如果我继续添加“^”,我会得到:
Ahuri ~/Public/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
我的“$?” 被覆盖,然后整行被覆盖。
没有问题\n。这又是旧的转义序列长度问题:\e[0m并且类似的不会影响提示的实际长度,因此您必须将它们括在\[.. 中\]以向解释器表明这一点:
PS1="\[\e[0;36m\]\h\[\e[m\] \[\e[0;33m\]\w/\[\e[m\]\n \[\e[0;31m\]\$ ?\[\e[m\] "
Run Code Online (Sandbox Code Playgroud)