鼠标滚轮可以在Screen会话中工作吗?


55

有什么方法可以使用鼠标滚轮滚动浏览screen会话的输出?

screen按下后,我可以使用键盘滚动浏览先前的输出ctrl+a [。鼠标滚轮可以做到这一点吗?

(我正在使用putty,但我不认为这是一个putty问题,我认为这是一个screen问题。)


3
您需要告诉PuTTY,将鼠标滚轮事件发送到终端中,而不是将它们自己保留。(我不知道是否可能,但请查看手册,它非常好。)
吉尔斯(Gills

即使在中的常规终端会话中screen,我也无法在screen“复制模式” 之外使滚动正常工作。我认为这是程序的限制,而不是Windows / Putty问题,但我可能是错的。
Naftuli Kay 2011年

出于好奇,你们尝试过同样的事情tmux吗?
Caleb

@Caleb:鼠标滚轮的tmux工作原理就像一种魅力(尽管我没有从油灰中尝试,但我没有窗户:))
Torian

Answers:


51

如果在.screenrc中启用鼠标滚动和升降梯,则它们将起作用。

屏幕常见问题

问:我的xterm滚动条不适用于屏幕。

答:问题在于,如果选择了备用文本缓冲区,则xterm将不允许滚动。termcap的标准定义初始化能力ti和te往返于备用文本缓冲区。(当您启动“ vi”时,滚动条也不起作用)。通过在〜/ .screenrc文件中添加termcapinfo xterm ti @:te @行,可以告诉屏幕不要使用这些初始化。

所以在我的.screenrc中,我有:

termcapinfo xterm* ti@:te@

在tmux中,它类似于(.tmux.conf):

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

7

尽管这是一个老问题,但我发现最适合我的方法是使用Ctrl + A + ESC组合键。这使屏幕输出可滚动。从文档页面:

屏幕中的虚拟终端可以通过按Ctrl + A组合键,然后按一个键来执行以下给出的命令之一来进行操作:

Esc可让您在终端输出中来回滚动

您可以在这里找到文档


1
这是一个不错的答案,它指向一个内置的屏幕功能,该功能无需更改任何配置即可解决此问题。
休伯特·佩伦

2
值得一提的是,复印模式(CA,ESC)暂停窗口中的任意当前正在运行的过程中,它被用于:superuser.com/questions/220139/...
K.匠

2

这不是最终的解决方案,如果您使用此

termcapinfo xterm* ti@:te@

那么鼠标滚动支持将在vim中被破坏,即 mouse=vi


是否可以进行编辑,.screenrc以便在您输入时vim将其关闭并在退出时重新打开?
fbence

好吧,这是可以接受的,因为无论如何我几乎都不在vim中使用鼠标滚动
andrej '18

1

如果可能的话,吉尔斯建议的可能是最好的答案。

如果不是,一种可行的解决方法是在每次滚动鼠标时使用x鼠标控件发送上下箭头键。我从未使用过带有腻子的屏幕,但是我已经在Windows中的腻子上使用了此设置,以便能够使用vi或nano滚动文本文件。我有不同的配置文件设置,一个用于3行滚动,一个用于1行滚动。


使用vim时,必须set mouse=a启用鼠标滚动。无需使用屏幕即可在腻子中使用,但使用屏幕时则无效。如何设置x鼠标控件?
kristi 2011年

只需访问网站并下载软件,这是很容易解释的。这是一个GUI应用程序。
AsherMaximum 2011年

1

鼠标滚轮可以很好地与运行在屏幕内部的elink配合使用,而elink则可以在gnome终端内部运行,因此确实有可能。在油灰托盘中,不是。

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.