如何在 GNU Screen 中允许 Page Up?

14 linux vim gnu-screen

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

我想使用Page Up它的常规向上分页功能。如何配置 Screen 来执行此操作?

Gre*_*ell 8

把它放在你的 .screenrc 中:

bindkey "^[[5~" eval "copy" "stuff ^b"
bindkey "^[[6~" eval "copy" "stuff ^f"
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢!仅供参考,我还绑定了 `"^[[5;2~"` 和 `"^[[6;2~"` 因为我的终端使用 SHIFT 向上/向下翻页,所以我的手指自然地点击了它。 (2认同)

Dan*_*der 6

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

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

termcapinfo xterm ti@:te@
termcapinfo xterm-color ti@:te@
Run Code Online (Sandbox Code Playgroud)

或者

termcapinfo xterm* ti@:te@
Run Code Online (Sandbox Code Playgroud)

向后滚动感觉有点奇怪,因为它似乎一次滚动所有窗口,如果你回退得太远,屏幕会完全消失,但对我来说这是最好的解决方案,因为我不需要指示用户使用其他快捷方式而不是众所周知的Shift+ PgUp/ Shift+ PgDown

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

  • 或者:`termcapinfo xterm* ti@:te@` 两者都可以。 (3认同)

Jin*_*ing 5

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

据我所知,Page Upscreen. 我怀疑这种行为是由于远程系统中的某些特定设置造成的。我个人绑定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
Run Code Online (Sandbox Code Playgroud)

  • `^u` 和 `^d` 只滚动部分屏幕。你可以使用 `^b` 和 `^f` 来全屏显示。 (2认同)