有什么办法可以解决屏幕换行处理不当的问题?(也许只有Terminal.app)


9

我在使用screen和Terminal.app时遇到问题。如果在屏幕底部出现bash提示,并且我一直键入直到该行换行到下一行,我会看到下一行,但是看不到这一行上方的更改。

这是说明我的问题的直观方法。| 代表终端的右侧。

之前。我的光标在第三个“示例”之后,我将第四次键入“示例”:

$ asdf                        |
bash: asdf: command not found |
$ example example example     |

后。请注意包装后,屏幕如何不滚动,而是“吃掉”我所在的行并重新开始:

$ asdf                        |
bash: asdf: command not found |
ple                           |

我所期望的(以及在不使用屏幕的情况下会发生的事情)是整个屏幕在换行后向下滚动一个。

bash: asdf: command not found |
$ example example example exam|
ple                           |

最后,如果我将换行上的光标移动到命令行的开头,它将吃掉前一行,则会发生这种情况:

$ asdf                        |
$ example example example exam|
ple                           |

知道发生了什么吗?


GNOME终端和屏幕4如预期的那样在FWIW上包装。您正在运行哪个版本,并且是否已更改默认配置?
伯纳德

当连接到两台不同的计算机时,会发生这种情况。我的debian机器的屏幕4带有一些自定义配置,而我的rhel 5.3盒子也有没有定制配置的屏幕4,并且两个盒子都表现出完全相同的行为。
AlexMax

我有完全相同的行为。它的另一个症状(上面没有描述)是在上一行被“吃掉”之后,选择会发生奇怪的事情。用鼠标开始选择,选择下面的内容将正确显示。例如:如果您要在上面的最后一个示例中选择“ $ asdf”行,它将突然变为“ bash:asdf:command not found”(这是前一行应该说的。)就像屏幕只是还没有重画那些线,但是应该有。就像忘记将这些行标记为脏线一样,需要重新渲染。
2010年

任何时候它开始变坏,只需选择所有(COMMAND + A)可使屏幕缓冲区看起来正确。
Eddified

另外,这在iTerm.app中也不是问题
Eddified

Answers:


7

成功!我从这里尝试了建议:

/server/272818/screen-not-dropping-down-a-line

要添加的是:

termcapinfo xterm* ti@:te@

.screenrc和重启画面。除了解决OP的问题外,这还可以将屏幕的回滚行为更改为对我的平均用例而言可能更好的某种情况(例如,只要我停留在同一窗口中,就可以使用Terminal的回滚)。

另外,我可以在10.7的Terminal.app中确认问题。


不错的侦探工作!不幸的是,我是屏幕多个窗口的沉重用户,所以这对我不起作用。
AlexMax 2012年

当我SSH到另一台服务器时,它对我也不起作用,这是即时通讯遇到问题的地方。不知道是否可以像这样艰难地指定它termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' ti@:te@
Brian Thomas

2

这可能是readline的“水平滚动模式”。运行以下命令:

bind 'set horizontal-scroll-mode off'

看看你的症状是否改变。如果是这样,您可以在〜/ .inputrc中进行设置


1
对我来说并没有帮助。
2010年

0

进入终端设置,并将“将终端声明为:”设置从“ xterm-color”更改为“ xterm”。这为我解决了这个问题(但也有关闭altscreen :()的结果。


我已经以这种方式配置了Terminal.app,但对我的问题没有帮助。根据屏幕手册页,水平滚动模式默认情况下处于关闭状态,并且在设置为打开的任何位置都看不到。笨蛋 真的很想找到解决方案。
蒂姆·哈珀
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.