如何使Mac OS X Terminal.app和屏幕/ vim滚动播放良好?


13

OSX 10.6.3 Terminal.app

是一个非常敬业的屏幕用户。Terminal.app行缓冲区和/或滚动似乎不适用于我。那就是在屏幕上,超出帧顶部的所有内容都消失了,无法滚动回去。在其他终端应用程序gnome,cygwin中,这似乎可以正常工作。也许这是一个外壳环境,配置或命令?

.screenrc:

startup_message off  
autodetach on  
shell -$SHELL  
vbell off  
defutf8 on  
caption always  
caption string "%{= wk}%w"  

我尝试在此处使用具有不同值的defscrollback,但没有效果。

一些.bashrc设置:

set -o physical  
export TERM=xterm-color  
shopt -s checkwinsize  

Answers:


15

在Lion中,默认的终端类型是不同的,因此应.screenrc改为使用以下行:

termcapinfo xterm-256color|xterm-color|xterm|xterms|xs|rxvt ti@:te@


这不为我工作:(“回声$”收益“一词的xterm-256color”,所以我相信这是正确的终值,但没有价值我提供生效。
蒂姆·哈珀

15

在主目录中,将.screenrc以下文本放入文件中:

# Make xterm scrolling work properly with screen.
termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@

也适用于Terminal.app。


2
我知道这在Snow Leopard中有效,但在OS X Lion中似乎无效。Bummer :(
Tim Harper

1
这正是我想要的-在OS X Lion 10.7.3中使用Terminal.app为我工作-太棒了!
dossy 2012年

在OS X Lion 10.7.5中对我也适用(注意:答案中有一个轻微的错字;将命令存储在其中的文件是〜/ .screenrc,即在您的主目录中,名为“.screenrc” -不是‘screenrc’我已经编辑了答案,现在以反映这一点)。
likethesky

8

我认为它应该也可以工作,甚至更通用:

termcapinfo xterm* ti@:te@

这将更加普遍。是合法的:

termcapinfo * ti@:te@

这是恕我直言的最佳答案。
史蒂夫·贝内特

3

我认识到旧线程,但值得:

如果在Mac OS X Mountain Lion 10.8.2上使用正确配置的iTerm2,则似乎没有必要按照上述Gareth的有用建议来创建/编辑.screenrc文件。

  1. 安装iTerm2-1_0_0_20120726

  2. 启动iTerm2>配置文件菜单>打开配置文件>选择默认>编辑配置文件>终端选项卡>勾选打开:

    • 存在应用程序状态栏时将行保存到回滚
    • 无限回滚(可选)
  3. 重新启动iTerm 2(或启动新的Shell)

  4. 测试一下:我个人在SSH上在AWS EC2上SSH到Ubuntu 12.04.1 LTS>由byobu启动(已经配置为使用屏幕,而不是默认的tmux)> Scrollback现在可以正常工作(无论如何,iTerm的终端比终端还好。)

-dk


这是惊人的!!
HaxElit

@David Keenan很高兴您发布了此解决方案!
ivan 2014年

2

简短答案:

输入crtl-a+ [并使用滚动/箭头键或pgup/ pgdwn。要退出“滚动模式”(不是实际名称),请按Esc

长答案:这篇关于屏幕回滚缓冲区的文章


请对不赞成票发表评论。
lajuette

注意,此方法似乎暂停正在运行的进程。可能需要或可能不需要
cavalcade 2015年

1

我不知道是否有可能获得Terminal的滚动缓冲区来收集和使用gnu屏幕的滚动。

我建议您阅读有关屏幕本身中回滚的更多信息。您将需要学习一些新的按键组合-由于您已经在使用屏幕,我怀疑这会让您感到恐惧。

Google的一点帮助下,我找到了一篇名为“使用Scrollback缓冲区”的博客文章。

我真的没想到回滚会与Terminal.app的缓冲区集成在一起。如果从一个虚拟屏幕切换到另一个虚拟屏幕,终端的缓冲区会如何处理?如果您断开与一台计算机的连接并在三个小时后重新连接,则您的终端缓冲区很长时间不同步。

screen是我进入另一台服务器的小窗口。我喜欢该屏幕的回滚缓冲区在会话中保持不变,因此我可以从任何连接位置访问它。我喜欢会话中的每个屏幕都有其自己的回滚缓冲区。

我认为您发现这在gnome和cygwin中有效,因为screen使用了xterm的“备用屏幕”功能。屏幕常见问题页面上的第一个问题中对此有更多讨论。


谢谢,很好的信息。是的,我喜欢复制模式。:)
rustychains

1

我使用iTerm 2。在配置文件>终端下有一个选项,其状态为:“在存在应用程序状态栏时将行保存到回滚”。那并把:

defutf8 on
termcapinfo xterm-color|xterm|xterms|xs|rxvt ti@:te@

在screenrc中帮了我大忙。滚动!


0

如果转到“终端”菜单并选择“首选项...”,然后单击底部的窗口选项卡,则有“回滚”选项,是否选择了“无限”单选按钮?


选择了无限制
rustychains 10-4-5

0

我意识到这是一个较旧的话题,已经得到了足够的答复,但是我的声誉还不够高,只能评论适当的答案。按照这个答案,您可以将环境变量粘贴到rcfile中:

termcapinfo $TERM ti@:te@为我做了。就像引用的答案一样,但没有通配符。


0

就我而言,Mac Terminal.app的问题在于我的默认终端配置文件未将终端声明为xterm-256color。在我的配置文件设置的“高级”选项卡的“ Terminfo”标题下,在“将终端声明为”处更改值可解决此问题。

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.