在GNU屏幕中使用滚轮
我如何设置GNU屏幕允许鼠标的滚轮在回滚缓冲区中滚动? 我曾试图向谷歌了解这一点,但是大多数关于如何让屏幕内的应用程序使用滚轮的命中。
我相信你可以像这样在你的~/.screenrc
添加一行:
termcapinfo xterm* ti@:te@
其中“xterm *”是您当前TERM的glob匹配。 要确认它有效,^ A ^ D从屏幕上分离,然后screen -d -r
重新连接,然后ls
几次,然后尝试向后滚动。 这个对我有用。
这是什么魔术? 那么,让我们查阅手册页。
screen(1)
说:
termcapinfo term terminal-tweaks [window-tweaks] [..] The first argument specifies which terminal(s) should be affected by this definition. You can specify multiple terminal names by separating them with `|'s. Use `*' to match all terminals and `vt*' to match all terminals that begin with "vt". [..] Some examples: termcap xterm* LP:hs@ Informs screen that all terminals that begin with `xterm' have firm auto-margins that allow the last position on the screen to be updated (LP), but they don't really have a status line (no 'hs' - append `@' to turn entries off). Note that we assume `LP' for all terminal names that start with "vt", but only if you don't specify a termcap command for that terminal.
从termcap(5)
:
String capabilities [..] te End program that uses cursor motion ti Begin program that uses cursor motion
在屏幕上,您必须首先进入“回滚模式”(或“复制模式”)才能够在回滚缓冲区中滚动:组合键Ctrl – a Esc或Ctrl – Ctrl – [ 。 然后,您可以使用向上和向下键(或Ctrl – b , Ctrl – f移动页面)滚动历史logging。
在这种模式下,如果鼠标滚轮适用于其他应用程序,也可以使用鼠标滚轮。 用Esc结束“回滚模式”。
至于滚动回滚缓冲区而没有首先进入回滚模式,这可能不可能不修改屏幕。 除了回滚模式,我从来没有听说过访问回滚缓冲区的方法。
Jon Z提到的优秀文章不再可用,但是我能够从Googlecaching中获取纯文本版本。 如果谷歌将来也会把它放在这里,我会把它保存在这里。 原来的职位是由MikaelStåldal所以信贷到期的信用。
–
如何在GNU屏幕中使用鼠标滚轮
GNU屏幕支持回滚,但默认情况下,你必须使用尴尬的键来使用它。 我希望能够使用Shift-PageUp,Shift-PageDown和鼠标滚轮来滚动,就像在xterm中可以做的那样。
为此configurationScreen并不容易,它涉及到与terminal仿真器的合作。 但我终于设法达到了一个很好的解决scheme。 将其添加到〜/ .Xresources文件中(您需要注销才能生效):
XTerm*saveLines: 0 XTerm*vt100.translations: #override \n\ Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ Lock @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\ <Btn4Down>: string(0x1b) string("[5S") \n\ Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ Lock @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\ <Btn5Down>: string(0x1b) string("[5T") \n\ Shift <KeyPress> Prior: string(0x1b) string("[25S") \n\ Shift <KeyPress> Next: string(0x1b) string("[25T") \n
然后将其添加到〜/ .screenrc文件中:
defscrollback 1000 # Scroll up bindkey -d "^[[5S" eval copy "stuff 5\025" bindkey -m "^[[5S" stuff 5\025 # Scroll down bindkey -d "^[[5T" eval copy "stuff 5\004" bindkey -m "^[[5T" stuff 5\004 # Scroll up more bindkey -d "^[[25S" eval copy "stuff \025" bindkey -m "^[[25S" stuff \025 # Scroll down more bindkey -d "^[[25T" eval copy "stuff \004" bindkey -m "^[[25T" stuff \004
这在xterm中有效。 我不确定它是否在其他terminal仿真器中工作。
请注意,这将禁用xterm中的正常滚动支持,只有在使用屏幕时才能滚动。 你可能想要像这样启动xterm来始终使用Screen:
xterm -e screen
对于OS X(雪豹),以下工作适合我:
http://slaptijack.com/system-administration/mac-os-x-terminal-and-gnu-screen-scrollback/
简而言之,它包括将以下内容添加到远程主机(您正在运行的屏幕上的)上的〜/ .screenrc:
defscrollback 5000 termcapinfo xterm* ti@:te@
在GNU屏幕中使用VIM中的滚轮:
[的.vimrc]
set mouse=a " hold shift to copy xterm set ttymouse=xterm2 " necessary for gnu screen & mouse
按Ctrl + a,然后按[
您的terminal的标题栏现在应该说复制模式。
现在箭头键和鼠标滚轮应该按预期工作。
要返回到正常按Esc或按Enter键几次。
以下在Cygwin和Putty中都适用于我:编辑.screenrc并添加
terminfo xterm* ti=:te=
在运行屏幕之前,将TERM
variables设置为vt100
而不是xterm
。
我一直在使用这个很长一段时间,就像一个魅力。
将此添加到您的.bashrc
:
# make scrollbar / wheel scrolling work when running screen in gnome-terminal (or other) if [ "$TERM" = "xterm" ]; then export TERM=vt100 fi
–
作为参考,我的.screenrc
有这个(不需要这个AFAIK):
# Extend the vt100 desciption by some sequences. termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
如果以上答案不适用于您,请确保您的.screenrc中没有设置标题或alwayslastline选项。 如果你有他们,这是行不通的。
termcapinfo xterm* ti@:te@
如果你需要这个信息,你可以尝试在你的terminal的标题(使用termcapinfo
)
使用“Ubuntu 16.04.2 LTS”时的解决scheme如下:
一个)。 更新$ HOME / .screenrc作为以前的答案已经指定:
termcapinfo xterm* ti@:te@
B)。 使用“设置”。“首选应用程序”通过select下拉列表中的“Xterminal”来将默认terminal更改为xterm。
一些多余的音符
-
即使我把termcapinfo行改为“*”而不是“xterm *”,其他任何terminal(包括安装“lxterminal”)都不能工作。
-
通过点击屏幕左上angular的菜单button,可以使用右下angular的第三个图标来获得设置对话框。