我使用 Mac OS X 作为工作站。使用 iTerm2,我使用以下命令连接到远程主机(Ubuntu Server):
ssh -t user@host screen -D -R -R
但我无法让滚轮正常工作,尤其是在使用分割窗口时。当我向上滚动时,我希望看到当前分割窗口的回滚缓冲区;相反,整个 iTerm2 回滚缓冲区都向上移动,显示了命令之前的部分输出ssh
。
按照termcapinfo xterm* ti@:te@
建议穿上~/.screenrc
这里,无论是在本地还是远程主目录中,都不会改变行为。
环境TERM
变量存在xterm-256color
于两个控制台中。
答案1
相关帖子Mac OS X 终端和 GNU 屏幕回滚本质上建议您不要切换到 xterm 的备用屏幕。在备用屏幕中,您不一定能够使用滚轮来查看终端的回滚。运行的程序xterm
只会看如果它启用了 xterm 鼠标协议,则转义序列。
默认情况下,screen
不执行此操作。它做有一个启用鼠标协议的设置,称为mousetrack
:
此命令确定
screen
将监视鼠标点击。启用此命令后,可以通过用鼠标指向它们并左键单击来选择以各种方式分割的区域。如果不指定开启或关闭,则显示当前状态。默认状态由"defmousetrack"
命令。
但
- 这是一个相当新的功能(在Linux 控制台上的屏幕(1)上的鼠标?)
- 它的描述并没有暗示它将有助于在窗口中滚动
相反(参见前几个链接),一些用户改变了 xterm 配置,将屏幕命令作为滚轮的结果发送。这样做的缺点是它只适用于 xterm+screen 的组合。
答案2
我也在尝试解决这个问题。到目前为止,我了解到添加以下 termcapinfo 行:
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007:ti@:te@'
并删除我的状态行:
# change the hardstatus settings to give an window list at the bottom of the
# screen, with the time and date and with the current window highlighted
#hardstatus alwayslastline
#hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
将使鼠标滚动与 iTerm2 内部的屏幕很好地配合。
但是,我想要我的状态行:(
答案3
根据本文,以下命令对我有用。
$ defaults write com.googlecode.iterm2 AlternateMouseScroll -bool true