我知道 mousefocus 选项只应该在 gVim 中工作。但我想知道,如果可以让控制台 Vim 响应鼠标点击切换到不同的窗口,是否也不能轻松地添加以下鼠标移动?
我是 xmonad 用户,我喜欢关注指针功能,我在使用 Vim 编写时会查看和浏览大量 pdf,如果我不必一直在精神上切换回来,我会更快乐在两种不同类型的焦点变化之间。
如果这完全不可能,我想在终端的新实例中打开新的 Vim 窗口(如 :split)并不容易?
添加它一点也不简单。在终端中使用鼠标通过 vim 向终端发送控制代码,请求将鼠标操作作为输入流的一部分发送。终端只报告点击而不是指针位置的变化,所以 vim 无法知道鼠标在哪里。
有了重大更改,支持 X 的 vim 可能可以直接从 X 服务器获取指针活动,但这可能会按像素而不是按字符报告,因此在确定哪个 vim 之前需要做进一步的工作窗口当前位于指针下方。
set mouse=a
应该可以解决问题,但它可能取决于您的终端仿真器。见:help 'mouse'
。
这适用于 Windows 7/Cygwin 32bit mintty/vim 7.3:(我不使用 gvim!)
安装了这个:http ://ehiti.de/katmouse/后,我可以滚动光标下的窗口,而无需单击选择窗口,单击选择单个 vim-windows 也可以。如果另一个窗口与它重叠,它不会将 vim 窗口拉到前台,如果这是你想要的。仍然可以滚动它而无需先单击选择它。
所以:
检查是否存在适用于您的发行版的软件包,该软件包在操作系统级别实现您所需的鼠标行为。当这适用于我在 cygwin 中自编译的 vim 时,它也可以很好地与 linux 上的控制台 vim 一起使用。
这篇文章在这里作为证据,这完全有可能,这就是没有发表评论的原因。当我再次使用 linux 时,我会进一步调查并更新这篇文章,但这可能需要一段时间。
On set mouse=a
:vim 帮助说明您需要一个能够处理鼠标输入的终端,更多信息可以在这里找到。:help ttymouse
也可能会有所帮助,即如果您有一个符合 xterm 的控制台,但:help term
设置为其他内容。
更新:(新安装的带有软件包的 Fedora 19,没有自编译的东西。)
Fedora 19 + se mouse=a
= 在单个控制台 vim 窗口中滚动,多个缓冲区彼此相邻打开,也可以独立工作。使用的窗口管理器是 LXDE。