新手问题,我最近将我的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来解释这个问题:
有什么想法可能出了问题吗?
新手问题,我最近将我的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来解释这个问题:
有什么想法可能出了问题吗?
我认为您的转义代码应该是单引号 '。请尝试以下内容:
export PS1="$RESET\u@\h:$CYAN\w$YELLOW\$(__git_ps1)$NORMAL \$ "
包装错误是指未转义非打印字符(例如改变提示符颜色的转义码)时发生的错误。当语言环境设置为不理解Unicode字符且提示符中包含它们时,也会发生此错误。一个例子是不间断空格。当语言环境为“C”并且提示符中有Unicode字符时,Shell认为正在打印更多的字符,而实际上并非如此,导致提示符提前换行。
shopt -s checkwinsize
会解决你的问题。
这会设置变量 checkwinsize on
。它默认在 /etc/bashrc 中设置,但是由于你使用自定义的 .bashrc 文件,你可以将此代码放在那里或者在你的 .bashrc 文件中通过添加 . /etc/bashrc
来加载 /etc/bashrc。
__git_ps1
函数是做什么用的?你能给我们展示一下代码吗? - konsolebox