IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    解决终端输命令换行覆盖问题

    wonderffee发表于 2013-08-15 22:24:00
    love 0

    发现终端输入比较长的命令时换行总是出问题,命令超出一行时会出现覆盖提示符的情况,烦不胜烦,今天终于找到问题所在了。 之前为了让终端显示彩色字符,在.bash_profile里增加了这样一个设置:

    1
    
    PS1="\[\e[0;31m\] \[\u@\h \W\]\$ \[\e[m\] "
    

    正是这个设置导致命令换行出问题。

    对比了一下别人正确的设置,发现我的PS1里多了一对\[和\],也就是中间的那一对\[和\]要删掉才行(貌似变成[和]也木有问题)。\[和\]是用于把非打印字符括起来的(颜色应该是非打印字符吧),别人出的换行问题都是没用\[和\]把非打印字符括起来的缘故,我这里却是把不该括的打印字符括了起来也有问题,真是多也不行少也不行。纠正的设置为:

    1
    
    PS1="\[\e[0;31m\] \u@\h \W\$ \[\e[m\] "
    

    顺便也再调整了一下终端的颜色显示,最终在.bash_probile里做的设置如下:

    1
    2
    3
    4
    5
    
    COLOR_BOLD="\[\e[1m\]"
    COLOR_DEFAULT="\[\e[0m\]"
    export CLICOLOR=1
    export GREP_OPTIONS="--color=auto"
    PS1='\[\e[01;33m\]\u@\h \W\$\[\e[m\] '
    

    参考:
    终端提示符设置
    Bash长行换行问题



沪ICP备19023445号-2号
友情链接