Aut*_*pps 2 shell bash prompt bashrc
我的问题与this question相似,但不同。
我在我的 中创建了一个自定义的 PS1 .bashrc,如下:
STARTCOLOR='\e[0;36m';
ENDCOLOR="\e[0m"
export PS1="\n$STARTCOLOR\u@\h:\! <\t> \w\n\$ $ENDCOLOR"
Run Code Online (Sandbox Code Playgroud)
看起来是这样(当然还有颜色):
tony@home:515 <17:04:52> ~/IdeaProjects/SomeProject
$ gedit ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
在将我的项目链接到我的远程 git 存储库时,我首先注意到了这个问题。我期望以下(当然不是真正的回购):
$ git remote add origin https://tony@bitbucket.org/tony/someproject.git
Run Code Online (Sandbox Code Playgroud)
而是得到了(请注意,它甚至覆盖了我的 PS1 的一部分):
project.gitte add origin https://tony@bitbucket.org/tony/some
Run Code Online (Sandbox Code Playgroud)
即使有这种视觉上的奇怪,这些命令仍然有效。
tl;dr当我有超过一行的长命令时,第二行会覆盖第一行。任何想法为什么?
将您的颜色转义序列包裹在\[and \](如您链接到的问题的答案中所述)以将它们标记为不可打印字符。
这样,bash在计算应该移动到新行的字符数时,不会将它们计入提示长度。
STARTCOLOR='\e[0;36m'
ENDCOLOR="\e[0m"
export PS1="\n\[$STARTCOLOR\]\u@\h:\! <\t> \w\n\$ \[$ENDCOLOR\]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |