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

bhi*_*ley 63 vim

我倾向于将终端最大化到一个屏幕,并在Vim中垂直分割几个窗口.对于左侧的前几个窗口,一切正常,但是在终端中点击第220列以后无法正常工作.任何鼠标点击过220列似乎都在第1列.我已经在xterm,urxvt和Gnome终端上进行了测试,有或没有tmux/screen; 总是一样的行为.如果我在Gnome终端中大大增加字体的大小,我可以点击最后一列(虽然它不再超过列#220).

如果我在打印到标准输出的终端中运行命令,我可以一直点击终端右侧.这个问题确实与Vim有关.

set mouse=a.vimrc.我会根据请求发布整个文件,但它似乎没有任何与鼠标相关的东西.

它可能无关紧要,但我正在运行Xmonad + Gnome.提前致谢.

Jim*_*art 80

这已在Vim 7.3.632中修复.见:h sgr-mouse.或者只是把它放在你的~/.vimrc:

set ttymouse=sgr
Run Code Online (Sandbox Code Playgroud)

如果要与未mouse_sgr编译的版本兼容,请使用:

if has("mouse_sgr")
    set ttymouse=sgr
else
    set ttymouse=xterm2
end
Run Code Online (Sandbox Code Playgroud)

要查看您的Vim版本是mouse_sgr从命令行运行vim --version还是在Vim中运行,请输入:version并查找+mouse_sgr.

如果您使用的是较旧版本的屏幕或不支持SGR的终端仿真程序,则可能需要升级或切换.这些设置适用于所有新版本的屏幕,tmux,gnome-terminal,PuTTY/KiTTY,iTerm2和Terminal.app,使用TERM=xterm-256colorscreen-256color.

更新:如果您使用的是neovim,则默认启用SGR支持.

  • 屏幕完全被tmux淘汰,恕我直言.此外,[屏幕来源](http://git.savannah.gnu.org/cgit/screen.git/tree/src/screen.c)是我见过的最恐怖的一些. (3认同)
  • 花了一段时间与此摔跤,但有一个答案:正如你所说,OSX附带的屏幕版本可悲地过时了.通过使用最新版本,您可以获得实际的256色支持,但它没有sgr鼠标支持.但是,有一个补丁添加了可以应用于当前头部的支持:https://lists.gnu.org/archive/html/screen-devel/2014-04/msg00043.html应用该补丁和重建,如以及在vim中设置ttymouse = sgr现在它们都运行良好. (2认同)

bhi*_*ley 9

编辑:
我删除了错误报告,因为该跟踪器是针对网站的,而不是文本编辑器.

在查找现有错误报告的正确位置时,我发现了这一点:http: //groups.google.com/group/vim_dev/browse_thread/thread/4c137e64d2032441/b3993eaa89589619?lnk = gst&q = teen#b3993eaa89589619

总而言之,这是一个被解除的xterm限制.但是,Vim尚不支持长于223的列.


原文:
这似乎是一个错误,由redstreet提出的评论支持.我提交了一份错误报告:

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

  • 我使用taglist,我将其放在左侧作为解决方法.对于标签栏,您可以在vimrc中使用`let g:tagbar_left = 1`. (3认同)
  • 这是一个特别的问题,因为我使用`tagbar`插件,它在窗口的右侧打开.我无法点击鼠标. (2认同)