使用滚轮时滚动屏幕而不是光标


18

我在终端中使用Vim,因此使用滚轮滚动时使用\e[Aand \e[B语法(其中\esymbols \x1b或escape)。

但是,Vim通过上下移动光标来解释这一点。期望的行为是屏幕被向上或向下移动,就像<C-e><C-y>做。

使用滚轮时,如何使Vim移动屏幕,同时将光标保持在同一行?这应该在所有常用模式(插入,正常,视觉选择)下都可以工作。

例如,我已经尝试过:nnoremap <esc>[A <C-e>(用<esc>插入的原义转义字符代替Ctrl+V Esc),但这被证明是徒劳的。

我在带有GNOME的Ubuntu 14.04上使用Vim 7.4.52。


您能否将问题限制在操作系统或窗口环境中?
200_success

@ 200_success好吧,我已经将环境编辑成问题。
2015年

我认为这个问题也应标记为“终端”。是否由于回答而无法编辑?
bsmith89

Answers:


12

就像@Doorknob在他的评论中所说的,:set mouse=a解决了这个问题。


1
有没有一种方法可以不进行设置mouse=a?我不希望偶然的点击弄乱我的编辑流程。
wchargin

amouse=a代表all(未追加)。from :help mouse“可以为不同的模式启用鼠标...通常,至少在我的vim中,当我启用它不会弄乱模式切换时,才可以在所有四种模式下使用::set mouse = a来启用鼠标。(只需启用滚动-并单击“单击以转到该行”)
Fawix

2
尽管该线程较旧,但对于希望set mouse=a避免意外点击而弄乱流量的用户而言,:map <LeftMouse> <nop>可以解决问题。
阳光双关

0

您想要的行为就是我的vim发生的事情。我找不到打开/关闭它的设置。也许检查:help滚动scrolloff可能会涉及。

您也可以考虑将标记用作解决方法。

  1. ma (将标记设置为“ a”)
  2. 根据需要滚动屏幕
  3. `a (将光标发送到标记为“ a”)

即使没有加载我的vimrc(vim -u NONE),我也得到这种行为。这是带有GNOME的Ubuntu 14.04上的Vim 7.4。
2015年

@Doorknob然后我得到窗口,而不是没有我.vimrc(只是set mouse=a)的光标移动。 :help scrolling说滚动行为是特定于平台的。我在OSX的iterm2中使用vim。
bsmith89

啊哈!:set mouse=a为我解决了这个问题。将其编辑为您的答案,我会接受的。谢谢!
门把手2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.