通过bash历史记录访​​问时,屏幕会切断长命令的开头


9

我正在OS X Lion中使用bash和screen的默认版本。

当我处于屏幕会话中时,我会在bash历史记录中向后滚动,然后出现一个足以包装的命令。

我可能首先输入一些命令:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

上面的代码可以正确包装,但是如果我按bash的历史记录来访问它,则控制台仅显示:

83279836214c0.144847759343/

因此,提示和命令的第一行都丢失了,这使得编辑变得很困难。如果我滚动回到第一行,它会出现,但是会覆盖输出的最后一行。当我执行命令时,第一行的其余部分将显示,并且一切看起来都与预期的一样:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

更奇怪的是,如果使用历史记录来访问长命令,但我还没有执行它,则使用任何C-a屏幕命令,例如切换到另一个窗口然后再返回,或者单击当前终端窗口中的回到它,history命令现在再次正确显示。

我的,PS1='\u@\h:\w$ '所以这里没有什么奇怪的。

使用历史记录时,是否可以正确显示整个命令?我尝试过使用屏幕环绕设置,但是它们只会使情况变得更糟。

stty -a 显示:

speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

您可以在屏幕内部回显$ TERM并提供输出吗?另外,如果您运行tput am; echo $ ?,您会得到什么?
Patrick

TERMxterm-256colortput am; echo $?刚才给我0
selassid

同样,仅当您在窗口底部的历史记录中滚动时才会发生这种情况,因此所有文本都必须向上移动才能在历史记录中显示命令的第二行。
selassid 2011年

输出是stty -a什么?
安迪·史密斯

我已将其添加到帖子的底部。它与屏幕不运行时的输出匹配。
selassid 2011年

Answers:


1

根据上面评论的答案,似乎您的一个启动脚本中的TERM覆盖了TERM。在屏幕内部时,您的TERM应该设置为“屏幕”,而不是“ xterm-256color”。

我将查看您的Shell启动脚本。〜/ .bashrc,/ etc / bash / bashrc,可能还有其他类似〜/ .bash_profile和/ etc / profile的文件,具体取决于您的设置方式。如果看到任何TERM =“ ...”设置,则需要删除这些设置。


没错,但是即使删除了这些内容,并且检查TERM是否在屏幕内也仍然无法解决问题。
selassid 2011年

您有〜/ .inputrc或/ etc / inputrc吗?如果是这样,请确保未设置horizo​​ntal-scroll-mode或将其设置为off。
Patrick

我确实有一个〜/ .inputrc,但是未设置horizo​​ntal-scroll-mode并将其设置为off不会改变行为。我启用了输入元和输出元,并关闭了转换元,但是删除这些设置不会改变行为。
selassid 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.