有什么方法可以让它工作吗?
我喜欢使用鼠标滚轮在 vim 中滚动文件。
另外,我也不介意用鼠标滚轮滚动 gnu 屏幕缓冲区,而不必输入 ctrl+a、ESC
编辑:
正如 Isaac Rabinovitch 的回答中提到的,屏幕和 vim 设置已经很好了。我认为整个问题都出在 PuTTY 上。
答案1
如果我执行了以下命令,则通过 ssh 连接在 PuTTY 下的 Vim 中使用鼠标滚轮滚动对我来说是可行的:
:set mouse=a
使用 tmux、屏幕和无屏幕多路复用器进行了测试。
编辑
根据要求,这是我用于测试的机器的 ~/.screenrc。
startup_message off
vbell off
bell_msg 'Bell in window %n^G'
defscrollback 500
hardstatus off
altscreen on
答案2
这似乎是使用 PuTTY 访问时影响屏幕和 tmux 的常见问题。请参阅我对与 tmux 相关的类似问题的回答,以深入了解问题本身。其中提供了一个潜在的解决方案以及一些分析。
一个摘抄上面的链接描述了潜在的解决方案:
潜在解决方案——PuTTY
似乎存在一个问题,即 PuTTY 在每个 ScrollDown/ScrollUp 事件中都发送一个多余的 ScrollDown 事件。这意味着每次向上滚动的尝试都会被取消,什么也不会发生。相反,向下滚动时,每个滚动事件都会加倍。通过查看vim
滚动行为,可以轻松验证此行为第一外(tmux
滚动正常工作),以及第二个里面(tmux
向上滚动不起作用,并且一次向下滚动的尝试会滚动两倍)。
根据以下 gmane 线程,上述问题已通过 Putty-X 补丁得到解决(https://github.com/atsepkov/putty-X/commit/bbcedf5a85ca1ccaa27005e7f7ebeb4c8a783b88):
链接至 gmane 主题:http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/5498。
笔记:我自己还没有验证上述解决方案,因此请查看 gmane 线程以获取更多信息。