14 linux vim gnu-screen
我使用 Vim 在 Linux 上编辑文本文件。通常我从 Windows 使用 PuTTY 连接到远程 Linux 机器。我也经常使用 GNU Screen。在 Screen 内使用 Vim 时,我无法使用该Page Up键,因为 Screen 将其解释为启动复制模式的命令。
我想使用Page Up它的常规向上分页功能。如何配置 Screen 来执行此操作?
把它放在你的 .screenrc 中:
bindkey "^[[5~" eval "copy" "stuff ^b"
bindkey "^[[6~" eval "copy" "stuff ^f"
Run Code Online (Sandbox Code Playgroud)
这将使 PgUp 和 PgDn 进入复制模式并在屏幕的回滚缓冲区内逐页移动。
警告:您仍然需要按 Esc 退出屏幕的复制模式。
我更喜欢超级用户的答案:
将以下内容添加到您的 ~/.screenrc 中:
Run Code Online (Sandbox Code Playgroud)termcapinfo xterm ti@:te@ termcapinfo xterm-color ti@:te@
或者
termcapinfo xterm* ti@:te@
Run Code Online (Sandbox Code Playgroud)
向后滚动感觉有点奇怪,因为它似乎一次滚动所有窗口,如果你回退得太远,屏幕会完全消失,但对我来说这是最好的解决方案,因为我不需要指示用户使用其他快捷方式而不是众所周知的Shift+ PgUp/ Shift+ PgDown。
更新:似乎此解决方案在滚动时跳过了输出的某些部分。所以我不能再推荐它了。但为了完整起见,我将答案留在这里。
检查您的个人或系统范围的screenrc文件,搜索诸如eval "copy" 之类的内容。如果存在,请尝试将其注释掉,看看它是否有帮助。
据我所知,Page Up在screen. 我怀疑这种行为是由于远程系统中的某些特定设置造成的。我个人绑定F9并F10在复制模式下上下滚动,并将其他键留给运行的程序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)