Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在Mac OSX Yosemite终端中,当线路过长时,它会开始覆盖自身,因为并没有线路馈送_Macos_Terminal - Fatal编程技术网

Macos 在Mac OSX Yosemite终端中,当线路过长时,它会开始覆盖自身,因为并没有线路馈送

Macos 在Mac OSX Yosemite终端中,当线路过长时,它会开始覆盖自身,因为并没有线路馈送,macos,terminal,Macos,Terminal,我为终端添加了一些自动可执行代码(inside.profile,因为我是root用户),所以git的颜色很好。Git的颜色确实很好,但现在我遇到了重叠行的问题,当它进入第二行时,它只是开始覆盖自己。这是我放在PS1上的部分,然后它开始引起问题: PS1='[$(tput setaf 7)]\u@[$(tput setaf 2)]\h:[$(tput setaf 4)]\w$(tput setaf 1)]$(解析git分支)[$(tput sgr0)]$' 有人知道PS1终端显示功能的相关文献吗?

我为终端添加了一些自动可执行代码(inside.profile,因为我是root用户),所以git的颜色很好。Git的颜色确实很好,但现在我遇到了重叠行的问题,当它进入第二行时,它只是开始覆盖自己。这是我放在PS1上的部分,然后它开始引起问题:

PS1='[$(tput setaf 7)]\u@[$(tput setaf 2)]\h:[$(tput setaf 4)]\w$(tput setaf 1)]$(解析git分支)[$(tput sgr0)]$'


有人知道PS1终端显示功能的相关文献吗?我对MacOSX的终端真的很陌生,对PS1是什么一无所知(除非它会毁掉终端,或者如果你真的知道自己在做什么的话会让它变得更好)?谢谢大家

问题在于如何定义提示:

PS1='[$(tput setaf 7)]\u@[$(tput setaf 2)]\h:[$(tput setaf 4)]\w$(tput setaf 1)]$(parse_git_branch)[$(tput sgr0)] $ '
您没有标记提示符中向终端发送字符(用于更改颜色)的非打印部分。使用bash手册中的
\[
\]
标记执行此操作:

\[
开始非打印字符序列。这可用于将终端控制序列嵌入提示符中

\]
结束非打印字符序列

下面是一个跳过括号(并添加一个)的提示:


如果您不局限于OSX,还有很多关于bash的信息,请参阅Linux或其他Unix上的信息。谷歌搜索“bash ps1”会让你失去很多小时的工作效率。(你不是以root用户的身份工作,是吗?那将是一个严重的问题。)谢谢molbdnilo。是的,我是root用户。我读了很多不应该这样做的地方,但这似乎是最容易做的事情,关于权限,也就是说,我不需要设置所有内容,我已经拥有了所有权限。别误会我的意思,但这个根本问题不是我的问题:)我的问题是我为什么要使用扰码终端。。。。除非这和它有关?我想这不是吗?是吗?好吧,我确实计划不再使用根目录,但我会关注我的问题,而不是根目录。谢谢,多谢了,托马斯,真管用!我花了几个小时想办法解决这件事,但无济于事。。。。。。我将对此进行更多研究,以便充分理解。
PS1='\[$(tput setaf 7)\]\u@\[$(tput setaf 2)\]\h:\[$(tput setaf 4)\]\w\[$(tput setaf 1)\]$(parse_git_branch)\[$(tput sgr0)\] $ '