新手问题,我最近将我的PS1改为:
RESET="\[\017\]"
NORMAL="\[\033[0m\]"
YELLOW="\[\033[0;33m\]"
CYAN="\[\033[0;36m\]"
export PS1="\[$RESET\]\u@\h:\[$CYAN\]\w\[$YELLOW\]\$(__git_ps1)\[$NORMAL\] \$ "
但是现在我收到了换行错误。我创建了一个gif来解释这个问题:
任何想法可能出错?
答案 0 :(得分:4)
我认为你用[和]双引号转义代码。试试这个:
export PS1="$RESET\u@\h:$CYAN\w$YELLOW\$(__git_ps1)$NORMAL \$ "
答案 1 :(得分:0)
每当不转义非打印字符时(例如更改提示颜色的转义码),就会发生包装错误。当语言环境设置为不理解unicode字符的内容,并且提示包括它们时,也会发生这种情况。一个例子是不间断空格。当语言环境为“ C”并且提示中包含Unicode字符时,shell认为打印的字符要比实际打印的字符多,并且提示会过早地回绕。
答案 2 :(得分:0)
shopt -s checkwinsize
这应该可以解决您的问题。
这将设置变量 checkwinsize on
。这是在 /etc/bashrc 中默认设置的,但是由于您使用的是自定义 .bashrc 文件,因此您可以将此代码放在那里或在您的 .bashrc 文件中通过在顶部添加 . /etc/bashrc
来加载 /etc/bashrc .bashrc 文件。