我已经在 .bash_profile 中设置了 PS1,虽然颜色有效,但当我调整终端窗口大小时,我会出现糟糕的自动换行和奇怪的线条行为。
这是我的 .bash_profile:
[[ -s ~/.bashrc ]] && source ~/.bashrc
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/TeX/Distributions/Programs/texbin:${PATH}"
shopt -s checkwinsize
export PROMPT_DIRTRIM=3
export PS1='\[\e[0;37m\]\d \D{} \[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[0;31m\]\w\[\e[m\] \$ '
export CLICOLOR=1
# export LSCOLORS=AxcxcxdxBxegedabagahad # light theme
export LSCOLORS=GxFxCxDxBxegedabagaced # dark theme
alias ls='ls -GFh'
alias mv='mv -iv'
alias cp='cp -iRv'
是我设置PS1的方式有问题吗?
答案1
要暂时恢复正常终端,可以使用:
kill -28 $$
您必须在提示符中的所有非打印转义序列周围放置 [ 和 ]。因此:
blue=$(tput setaf 4)
purple=$(tput setaf 5)
reset=$(tput sgr0)
export PS1="\[$blue\]\h:\[$purple\]\w\[$reset\]\\$ "
所以停止使用原始的 ansi 代码,它不可读,最好使用tput
.