在屏幕下的 vim 中丢失箭头键

在屏幕下的 vim 中丢失箭头键

在某些情况下,我无法在 vim 中使用箭头键。我刚刚安装了 16.04 LTS,使用早期版本的 Ubuntu 时没有遇到此问题。

使用PAC 经理选项卡式 SSH 客户端连接到远程服务器,然后我开始一个会话。PAC 管理器似乎有问题,除非我“重置”终端,否则screen在新会话中无法回滚。(按键++ )所以我进行了重置。screenCtrlShiftX

终端重置后,现在我可以回滚,但在 vim 中,箭头键不再起作用(屏幕“闪烁”,就像screen它想要发出铃声时一样)。恢复箭头的唯一方法是退出screen会话。

最好的解决方案是修复为什么我需要重置终端才能使回滚工作。但我认为更容易期待更多帮助来恢复丢失的箭头键。

PS:终端类型不是解决方案,因为我尝试更改 $TERM 但没有成功,而且无论如何箭头键都可以正常工作,screen直到我执行“终端重置”

答案1

screen将终端仿真器切换到所谓的“备用屏幕”模式,在该模式下,终端仿真器不提供回滚功能。相反,它screen提供自己的方法(通过键盘)来回滚。

screen假设您能够同时运行和使用常规滚动条,这是错误的,即使您通过 hack 实现这一点(例如重置终端仿真器,从而离开备用屏幕),回滚内容肯定不是您所期望的。您应该避免使用screen,或者熟悉它提供的基于键盘的滚动机制。

screen和/或vim要求终端仿真器发出与默认值不同的按键序列,并且 Reset 甚至会恢复这一点,因此生成的序列不再符合预期。

答案2

答案是防止屏幕处理回滚。添加到.screenrc

termcapinfo xterm ti@:te@

现在本地终端可以处理回滚

相关内容