我为终端设置了一些自动执行代码(内部.profile,因为我是root用户)所以git很好地着色。 Git的颜色确实很好,但现在当它进入第二行时我有重叠线的问题,它只是开始覆盖自己。这是我放的PS1的一部分,然后它开始引起问题:
PS1 ='[$(tput setaf 7)] \ u @ [$(tput setaf 2)] \ h:[$(tput setaf 4)] \ w $(tput setaf 1)] $(parse_git_branch)[ $(tput sgr0)] $'
有没有人知道这个PS1的好文献 - 终端显示功能?我对mac osx的终端很新,并且不知道PS1是什么(除非你真的知道你在做什么,它会破坏终端或者让它变得更好)?谢谢你们!
答案 0 :(得分:2)
问题是如何定义提示:
PS1='[$(tput setaf 7)]\u@[$(tput setaf 2)]\h:[$(tput setaf 4)]\w$(tput setaf 1)]$(parse_git_branch)[$(tput sgr0)] $ '
您没有标记提示符的部分,这些部分将字符发送到非打印的终端(用于更改颜色)。使用bash手册 6.9 Controlling the Prompt 中的\[
和\]
标记执行此操作:
\[
开始一系列非打印字符。这可用于将终端控制序列嵌入到提示中。
\]
结束一系列非打印字符。
这是一个转义括号(并添加一个)的提示符:
PS1='\[$(tput setaf 7)\]\u@\[$(tput setaf 2)\]\h:\[$(tput setaf 4)\]\w\[$(tput setaf 1)\]$(parse_git_branch)\[$(tput sgr0)\] $ '