我是xmonad用户,我喜欢指针跟随功能,我经常在Vim中写作时查看pdf和浏览网页,如果不必在两种不同的焦点之间来回切换,我会更加愉快。
如果完全不可能实现,那么打开新的Vim窗口(如:split)在新的终端实例中也不容易吗?
这并不是一件简单的事情。在终端中使用鼠标的方式是vim向终端发送控制代码请求将鼠标操作作为输入流的一部分发送。由于终端仅报告点击,而不是指针位置的更改,因此vim无法知道鼠标的位置。
通过主要更改,可能可以使支持X的vim直接从X服务器获取指针活动,但那可能会按像素而不是按字符进行报告,所以还需要进一步的工作才能确定当前位于哪个vim窗口下的指针。
set mouse=a
这个应该能解决问题,但具体情况可能取决于你使用的终端仿真器。请参见:help 'mouse'
。
这适用于Windows 7/Cygwin 32位mintty/vim 7.3:(我不使用gvim!)
安装了这个http://ehiti.de/katmouse/之后,我可以滚动光标下的窗口,而无需单击选择窗口,单击选择单个vim窗口也可以工作。如果您希望它不将vim窗口拉到前景,则不会在另一个窗口重叠时将其拉到前景。但仍然可以在未首先单击选择它的情况下滚动。
所以:
检查是否存在软件包,可以在操作系统级别上实现所需的鼠标行为。当这对我在cygwin中自编译的vim有效时,它很可能也适用于linux上的控制台vim。
此帖子作为证据,表明这是可能的,这就是为什么它没有成为评论的原因。当我再次使用Linux时,我将进一步调查并更新此帖子,但这可能需要一段时间。
关于set mouse=a
:vim 帮助说明需要终端能够处理鼠标输入,可以在这里找到更多信息。:help ttymouse
也可能会有所帮助,例如如果您拥有符合 xterm 标准的控制台,但是 :help term
设置为其他方式。
更新: (全新安装的Fedora 19,没有自行编译的内容。)
Fedora 19 + se mouse=a
= 在单个控制台vim窗口中独立打开多个缓冲区并进行滚动操作同样有效。使用的窗口管理器是LXDE。
neovim
的原因,其中分割窗格可以使用鼠标切换,并且在窗格内部进行鼠标滚动的操作也能够按预期工作。 - ccpizza