\e[A
和\e[B
语法(其中\e
表示\x1b
或转义)。但是,Vim通过向上或向下移动光标来解释下线。理想的行为是像
<C-e>
和<C-y>
一样向上或向下移动屏幕。使用滚轮时如何告诉Vim移动屏幕,同时保持光标在同一位置线?这应该适用于所有常见模式(插入,普通,可视选择)。
我已经尝试过,例如
:nnoremap <esc>[A <C-e>
(用插入Ctrl + V Esc的文字转义字符代替<esc>
),但这被证明是徒劳的。我在带有GNOME的Ubuntu 14.04上使用Vim 7.4.52。
#1 楼
正如@Doorknob在评论中所说,:set mouse=a
解决了该问题。评论
有没有一种方法无需设置mouse = a?我不希望偶然的点击弄乱我的编辑流程。
– wchargin
15年4月24日在23:23
鼠标中的a = a代表所有(不附加)。来自:help mouse:“可以为不同的模式启用鼠标...通常,至少在我启用vim时,只要启用,它就可以在所有四种模式下使用:set mouse = a来启用鼠标:使用模式切换(只需启用滚动-并“单击以转到该行”)
– Faix
17年8月27日在21:42
尽管此线程很旧,但对于想要设置mouse = a而又不会意外点击弄乱流量的人,:map
–晴天双关语
17年11月21日在6:08
#2 楼
我知道这已经晚了几年,但是您可以使用nmap <Down> <C-e>
nmap <Up> <C-y>
这对我有用。
评论
欢迎来到Vi和Vim!
– D. Ben Knoble♦
20-11-08在17:14
#3 楼
您想要的行为是在我的vim上发生的。我找不到打开/关闭它的设置。也许检查:help滚动?scrolloff
可能会涉及。您也可以考虑使用标记作为解决方法。
ma(设置标记'a')
根据需要滚动屏幕
`a(发送光标以标记“ a”)
评论
即使没有加载我的vimrc(vim -u NONE),我也会得到这种行为。这是带有GNOME的Ubuntu 14.04上的Vim 7.4。
–门把手
2015年2月3日在23:05
@Doorknob然后我得到窗口而不是没有我的.vimrc的光标移动(只需将mouse = a设置)。 :help scrolling表示滚动行为是特定于平台的。我在OSX的iterm2中使用vim。
–bsmith89
2015年2月3日在23:07
啊哈! :set mouse = a为我解决了这个问题。将其编辑为您的答案,我会接受的。谢谢!
–门把手
2015年2月3日在23:08
评论
您可以将问题限制在操作系统或窗口环境中吗?@ 200_success好吧,我已经将环境编辑成问题。
我认为这个问题也应标记为“终端”。是否会因为回答而无法编辑?