微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash换行和历史滚动

我的bash提示和换行行为有问题.如果我使用静态提示

export PS1="test$";   ### Works perfectly

我可以在提示符上键入长行,并且它们可以很好地包装.在历史记录中向上/向下滚动也可以正常工作.
使用动态提示如:

export PS1="\u@\h(\W)$";    ### Long lines don't wrap at all

长队被打乱了.找到一个修复,使长线正确包裹. (http://hintsforums.macworld.com/showthread.PHP?t=17068).

export PS1="\[\u@\h(\W)$\]";  ### Long  lines wrap while typing,but not while scrolling up/down through prevIoUs commands

但是,在上升/下降提示历史记录时,这些行不会换行.我不知道如何解释单词中的行为,但我会尝试 – 当我上升(向上箭头键)时,最后一个命令的一半被吃掉,光标最终会在行将被包裹的地方之间的某处.

这是什么解决方案?

我记得在许多Linux发行版中,动态提示正常工作(这是在我的工作场所).

问候,

J.P

解决方法

这个问题可能与提示本身无关,但更有可能是终端模拟器正常运行.

我用这个bash提示符:

export PS1="\[\e[1;34m\]\u@\h:\W \t (\j) <\!>\n\$\[\e[0;00m\]"

实际上显示两行,看起来完全像这样:

aks@anywhere:sh 01:43:27 (1) <1017>
$env | grep PS
PS1=\[\e[1;34m\]\u@\h:\W \t (\j) <\!>\n\$\[\e[0;00m\]

使用CTRL-N,CTRL-P或箭头键可以完美地处理历史记录滚动.

我在Terminal.app中使用xterm-color(在MacBookPro上).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐