• 23
  • Jul

别搞错了, 是Shell的提示符:PS1,不是Play Station One。(-。-)

这个PS1的目前有两个功能:高亮所有不为0的返回值,显示Git分支。

效果如图:

Power PS1

你可以看到,当我在Shell中打“hello”时,在显示了“command not found”以外,还把Shell的PS1提示符弄红了,在前面还有返回值:127。方便了在发生错误的情况下得到注意。

此外,作为一个Git用户,当进入一个Git仓库时,会用灰底黄字显示当前的分支信息,一目了然。

实在是方便!PS1也能加入超多的功能!

当然这些都不是原创的,只是稍微改了下,是向bones7456albert学的。

下面就是这个PS1,很晕吧:PS1='`a=$?;if [ $a -ne 0 ]; then echo -n -e "\[\e[01;32;41m\]{$a}"; fi`\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\W`b=$(parse_git_branch); if [ x"$b" != "x" ]; then echo -n -e "\[\e[33;40m\](branch:$b)\[\033[01;32m\]\[\e[00m\]"; fi`\[\033[01;34m\] $ \[\e[00m\]'

如果你也想用的话,从我的Git仓库中,取出样本,放进你的~/.bashrc里吧。记得不要少了parse_git_branch这个函数。

http://github.com/tualatrix/configs/tree/master

Tags: Git, Shell.

» You can leave a comment.

1 Pingbacks

15 Comments

  1. 哈哈..拿来主义..赶紧偷来用了

  2. 最短的 PS1:PS1='[\[\033[0;34m\]\u\[\033[0;35m\]@\[\033[0;33m\]\w\[\033[00m\]]$ '

  3. 我的也好短……'\[\e[2;32m\]\u\[\e[2;34m\] >> \[\e[0m\]\[\e]2;\w\a\]'

  4. 很有前途的ps1啊,我还是短短的用

  5. 这样搞得提示符太长了 -_-!!

  6. 幽隱之賢

    Gentoo 的已經很不錯了,而且很長會讓人很噁心的……

  7. cbkid

    都贴了...ubuntu最近几不去了...只记得效果
    [dir] 黄色为普通用户 红色为root

  8. doylecnn

    在cygwin下使用成功
    但是在cygwin下的screen中使用时失败
    sh: parse_git_branch: command not found
    sh: [: 244=: binary operator expected

    要怎么解决呢

  9. zer4tul

    赞……用之。

  10. 我的就只是黑屏白字

  11. Dig

    BLUE="\[\033[0;34m\]"
    DARK_BLUE="\[\033[1;34m\]"
    RED="\[\033[0;31m\]"
    DARK_RED="\[\033[1;31m\]"
    NO_COLOR="\[\033[0m\]"
    PS1='`RET=$?; if [ $RET -ne 0 ]; then echo -n -e "\[\033[01;33;41m\]{$RET}\[\033[0;0m\]"; fi`'"$DARK_BLUE${debian_chroot:+($debian_chroot)}\u@\h$NO_COLOR:$RED\w\$NO_COLOR"

    原来只在ubuntu 904上改了颜色,今天才又加了返回值

  12. 太长了。。。。。
    我宁愿短一点。或者用zsh,然后上面加一个框。嘿嘿。

  13. 赞一个,用用。

  14. '\[\033[01;34m\]\W''\[\e[33;40m\]$(__git_ps1 "(%s)")\[\033[01;32m\]\[\e[00m\]'" \$ "

    用 git-completion.sh 获取分支名字更简单。

Leave a Comment