在 Vim 中通过 Screen(和 PuTTY)滚动有时会插入随机字符

在 Vim 中通过 Screen(和 PuTTY)滚动有时会插入随机字符

我在使用 Vim、screen 和 putty 时遇到了一个奇怪的问题。

我通过 Putty 连接到 Screen,总体来说,运行良好。不过,我在 Vim 中滚动时遇到了一些问题。

一些细节:

  • termcapinfo xterm* ti@:te@在 screenrc 中设置了鼠标滚轮来滚动。效果不是很好(回滚在屏幕窗口之间变得混乱),但我更喜欢它而不是使用键盘
  • set term=xterm我的 vimrc 中有。
  • 另外,在我的 vimrc 中,我设置了mouse=attymouse=xterm2,这样我就可以使用鼠标滚轮了。这就是问题出现的地方。
    • 当我用鼠标在 PuTTY 窗口左侧滚动时,它工作正常
    • 当我使用鼠标滚动 PuTTY 窗口右侧时,随机字符会插入到我正在编辑的文件中,或者插入到 Vim 命令行中。

我搜索后发现没有其他人遇到这个问题,我不知道该尝试什么。任何关于我可以尝试的建议都非常有用。

如果我可以提供更多信息,请告诉我。

答案1

在你的 vimrc 中放入“ set term=xterm”是一个坏主意,并且可能是导致问题的原因;在 screen 下运行时,你的 TERM(在 shell 上)和'term'Vim 中的选项应该是“screen”,而不是其他的。

如果您尝试通过'term'在 Vim 中设置选项来解决 TERM 问题,则需要找到问题的真正根源并在那里修复它。PuTTY 是否模拟了正确的终端类型?您的 shell 是否启动屏幕是否反映了正确的 TERM?(echo $TERM在 shell 命令行上)。最后,你的 shell 您将启动屏幕设置为“屏幕”(它应该始终如此)?

如果在解决 TERM 问题后仍然遇到此问题,请检查输出:

:verbose set ttimeout? ttimeoutlen?

(请注意双 t 和问号是命令的一部分。)

正常情况下,输出将是两行“nottimeout ttimeoutlen=-1”,如果是其他内容,请尝试重置它们:

:set ttimeout& ttimeoutlen&

相关内容