如何在GNU屏幕上允许Page Up?


12

我使用Vim在Linux上编辑文本文件。通常,我使用Windows上的PuTTY连接到远程Linux机器。我也通常使用GNU Screen。在Screen内使用Vim时,我无法使用该Page Up键,因为Screen将其解释为启动复制模式的命令。

我想将Page Up其用于常规的上调功能。如何配置Screen来做到这一点?


像平常一样登录到系统并键入:echo $ TERM我正在使用PuTTY并连接到我的Linux,并且能够使用PAGE-UP没问题。
alexus 2012年

3
您必须配置腻子在这个线程回答:superuser.com/questions/94436/...

1
在Vim中,也可以使用ctrl-u(按ctrl-d进行向下翻页)来实现向上翻页。并不是说这可以解决您的问题...
adamdunson

1
Ctrl-U和Ctrl-D仅滚动部分屏幕。您可以使用Ctrl-B和Ctrl-F进行全屏显示。
echristopherson

Answers:


5

我更喜欢超级用户的答案:

将以下内容添加到您的〜/ .screenrc中:

termcapinfo xterm ti@:te@
termcapinfo xterm-color ti@:te@

要么

termcapinfo xterm* ti@:te@

向后滚动感觉有点怪异,因为它似乎一次滚动所有窗口,并且如果您向后退得太远,屏幕会完全消失,但是对我来说,这是最好的解决方案,因为我不需要指示用户使用除著名的Shift+ PgUp/ Shift++ PgDown

更新:似乎此解决方案在滚动时会跳过输出的某些部分。因此,我不再推荐它。但是为了完整起见,我将答案留在这里。


2
或:termcapinfo xterm* ti@:te@两者兼而有之。
kenorb '16

4

检查您的个人或系统范围的screenrc文件,搜索诸如eval“ copy”之类的东西。如果存在,请尝试将其注释掉,看看是否有帮助。

据我所知,Page Up默认情况下未绑定到开始复制模式screen。我怀疑此行为是由于远程系统中的某些特定设置引起的。我个人绑定F9F10在复制模式下上下滚动,并将其他键留给了在以下程序中运行的程序screen

bindkey -k k9 eval "copy" "stuff ^u"
bindkey -k k; eval "copy" "stuff ^d"
bindkey -m -k k9 stuff ^u
bindkey -m -k k; stuff ^d

2
^u并且^d只滚动部分屏幕。您可以使用^b^f全屏显示。
echristopherson

4

将其放在您的.screenrc中:

bindkey "^[[5~" eval "copy" "stuff ^b"
bindkey "^[[6~" eval "copy" "stuff ^f"

这将使PgUp和PgDn进入复制模式,并在屏幕的回滚缓冲区内按页面移动。

警告:您仍然需要按Esc键才能退出屏幕的复制模式。

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.