Mac OS X终端应用程序的缓冲区和屏幕命令

17

我使用Mac OS X Terminal.app连接远程机器,然后在该机器上使用screen。

是否有办法在终端上使用滚动条来回滚屏幕缓冲区。使用ctrl+a+Esc,然后Page Up/Down翻页非常麻烦。

谢谢 Arvind

3个回答

27

在前两个答案的基础上进行扩展:.screenrc 行

termcapinfo xterm* ti@:te@

打开滚动条是一种方便的方式,除非您正在使用Control-A在同一终端窗口中切换多个屏幕会话。Screen使用所谓的光标寻址模式为每个会话保留单独的历史缓冲区;上面的termcapinfo行告诉它永远不要使用该模式。然后所有的历史记录都进入一个缓冲区,原生的终端缓冲区,您将看到来自所有会话的行混在一起。

如今,这意味着为您的远程登录使用单独的终端窗口(或选项卡)-对于恢复滚动条而言,对我来说这是一个很小的代价。

那么为什么滚动条模式不是默认模式?因为在Ye Olde Tyme Dayes时代,当我们在雪地里走了二十英里到达我们的80x24字符VT100时,您只能在终端上获得一个登录。除非您在桌子上有两个终端,否则Screen是唯一的多会话游戏。


我在Lion系统中遇到了这个问题,虽然这种方法可以解决问题,但是意味着我必须在每台远程机器上编辑~/.screenrc文件。在Snow Leopard系统中,我可以在任何机器上使用screen进行向上翻页,而不需要做任何特殊的操作,我很想知道如何在Lion系统中实现这一点。 - cerberos
这很棒,但是当使用screen直接连接到tty设备时(例如http://www.noah.org/wiki/Screen_notes#using_screen_as_a_serial_terminal),不幸的是它无法工作 - 有任何想法为什么会这样? - natevw

5
将以下内容添加到~/.screenrc应该可以满足您的需求。
termcapinfo xterm* ti@:te@

这也解决了http://superuser.com/questions/1038123/tmux-scrollback-buffer-limited-to-current-screen-scrolling-doesnt-show-previo。 - meatspace

0

我认为你无法在screen中使用终端的滚动条,因为终端只知道大约80x25大小的部分,并且显示缓存是在screen进程中完成的。

你可以尝试将其绑定到更简单的组合键上,在man页面的CUSTOMIZATION部分查看相关信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接