在 Vim 中,为什么我的鼠标不能超过220列?

我倾向于最大化一个终端到一个屏幕,并在 Vim 中垂直分割多个窗口。左边的前几个窗口一切正常,但是点击终端中的第220列并不能正常工作。任何鼠标点击过220列似乎都会绕到第1列。我已经在 xterm、 urxvt 和 Gnome 终端中测试过带或不带 tmux/screen 的情况; 总是采用相同的行为。如果我大大增加了 Gnome 终端中字体的大小,我可以点击最后一列(虽然它不再是过去的列 # 220)。

如果我在一个终端中运行一个命令,打印到标准输出,我可以点击所有的方式到终端的右边。这个问题似乎和 Vim 有关。

我在 .vimrcset mouse=a。我将按要求发布整个文件,但似乎没有任何其他与鼠标相关的内容。

这可能无关紧要,但是我正在运行 Xmonad + Gnome。

10607 次浏览

编辑 :
我删除了错误报告,因为那个追踪器是为了网站,而不是为了文本编辑器。

正确的地点中查找现有的错误报告时,我发现: Http://groups.google.com/group/vim_dev/browse_thread/thread/4c137e64d2032441/b3993eaa89589619?lnk=gst&q=mouse#b3993eaa89589619

总之,已经取消了 xterm 限制。但是,Vim 还不支持长于223的列。


原文:
这似乎是一个 bug,并得到了 redstreet 评论的支持。我提交了一份 bug 报告:

Https://sourceforge.net/tracker/?func=detail&aid=3389331&group_id=27891&atid=391887

这已经在 Vim 7.3.632中被修复了。参见 :h sgr-mouse。或者只是把这个放在你的 ~/.vimrc中:

set ttymouse=sgr

如果您希望兼容没有编译 mouse_sgr的版本,请使用:

if has("mouse_sgr")
set ttymouse=sgr
else
set ttymouse=xterm2
end

要查看您的 Vim 版本是否有 mouse_sgr,请从命令行运行 vim --version,或者在 Vim 中输入 :version,然后查找 +mouse_sgr

如果您正在使用旧版本的屏幕,或终端模拟器不支持 SGR,您可能需要升级或切换。这些设置适用于所有新版本的 screen、 tmux、 gnome-Terminal、 PuTTY/KiTTY、 iTerm2和 Terminal. app,使用 TERM=xterm-256colorscreen-256color

更新: 如果您使用 neovim,SGR 支持在默认情况下是启用的。

几年后,这种病毒似乎仍然存在。 我找到的解决方案是 neovim: vim 的现代重构。

我只是简单地将我的. vimrc 复制到. nvimrc 中,而我的插件只是与 nvim 一起工作。