JJD*_*JJD 8 git bash zsh command-prompt
你知道是否有可能配置bash提示在右侧显示git状态/分支信息,因为zsh可以做到吗?这个从互联网上随机拍摄的屏幕显示了我的意思.

ZyX*_*ZyX 10
请尝试以下方法:
PS1='$(printf "%*s\r%s" $(( COLUMNS-1 )) "[$(git branch 2>/dev/null | grep '^*' | sed s/..//)] $(date +%H:%M:%S)" "heipei@wavefront:$PWD$ ")'
Run Code Online (Sandbox Code Playgroud)
请注意,您永远不会获得仅与bash完全匹配的行为.在上面的例子中,我看到以下不同之处:
accept-linezsh方面的事件)时,不会清除提示的右侧部分.<C-u>或,将清除提示的右侧部分<BS>.c00*_*ter -1
一种方法是使用tput计算终端的列数,并减去将要左右打印的字符数,然后使用该数字作为左右文本之间的空格数。用于printf构建线路。
简单的例子:
left="[${status}]\u@\h:\w\$ "
right="$(git symbolic-ref HEAD) $(date +%T)"
spaces="$(( $(tput cols) - ${#left} - ${#right} ))"
export PS1="$(printf "%s%${spaces}s\n" "$left" "$right")"
Run Code Online (Sandbox Code Playgroud)