我有一个PS1
看起来像:
johnsmith@someserver:~
$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n$(exitstatus)
由于我通常在笔记本电脑上工作,因此我非常喜欢在下一行显示命令提示符,因此\n$
在PS1
.
有时,当我使用我的导航到以前的命令时向上/向下箭头,提示被“破坏”,光标浮动在第一行有的位置\n
,并且从历史记录中恢复的命令从那里开始,尽管字符显示在该行的开头,但为了说明目的:
johnsmith@someserver:~
$ cp templates/template-component.yaml components/foo/my-component.yaml
光标会在字母所在的位置闪烁e
,命令cp
会从那里开始,但它会像我粘贴时一样显示,这使得很难知道我正在编辑什么。
是什么规范的和恰当的在 Unix 中进行两行提示的方法?如果没有奇怪的错误行为,我怎样才能实现这个结果呢?
编辑:
添加有关我的设置的更多信息,shell 是bash
version 5.0.3
。终端是gnome-terminal
版本3.30.2-2
.
编辑#2:
我一直试图在其他地方复制这个问题,tty
但没有成功,这(对我来说)指出gnome-terminal
这里是潜在的罪魁祸首。