如何禁用vim鼠标滚轮?

时间:2015-10-03 04:08:05

标签: vim archlinux gnome-terminal

我想知道如何禁用鼠标滚轮,但是我发现了thisthis问题,我尝试将它们放到 .vimrc

set mouse=""

map <ScrollWheelUp> <nop>
map <S-ScrollWheelUp> <nop>
map <ScrollWheelDown> <nop>
map <S-ScrollWheelDown> <nop>

但是没有一个会禁用鼠标滚轮,我仍然可以用它来滚动。

我在Arch Linux上,使用vim 7.4和gnome-terminal 3.16.2。

2 个答案:

答案 0 :(得分:3)

这可能是一个侏儒终端问题而不是Vim问题。使用.vimrc,您可以通过在终端

中发出这些命令来打开和关闭鼠标滚轮
echo -e '\e[?1000h'
echo -e '\e[?1000l'

编辑:以前的答案不起作用,因为gnome-terminal设置是 被肉桂的设置覆盖(在这种情况下),也许还因为 滚动是使用触摸板而不是鼠标完成的。可以禁用 在Synclient的帮助下滚动(命令行实用程序来配置和查询 Synaptics驱动程序设置)推出

augroup scroll
    au!
    au  VimEnter * :silent !synclient VertEdgeScroll=0
    au  VimLeave * :silent !synclient VertEdgeScroll=1
augroup END
你的.vimrc中的

此解决方案对于禁用滚动甚至不在Vim之外也不是最佳选择 只要Vim跑了。

答案 1 :(得分:3)

Dell XPS和Ubuntu 16.04使得在vim上使用滚轮成为一种难以忍受的体验,因为我的手使光标每隔几个字符移动,所以我无法输入任何内容!

将其添加到.vimrc以完全禁用鼠标滚动:

set mouse=a

nmap <ScrollWheelUp> <nop>
nmap <S-ScrollWheelUp> <nop>
nmap <C-ScrollWheelUp> <nop>
nmap <ScrollWheelDown> <nop>
nmap <S-ScrollWheelDown> <nop>
nmap <C-ScrollWheelDown> <nop>
nmap <ScrollWheelLeft> <nop>
nmap <S-ScrollWheelLeft> <nop>
nmap <C-ScrollWheelLeft> <nop>
nmap <ScrollWheelRight> <nop>
nmap <S-ScrollWheelRight> <nop>
nmap <C-ScrollWheelRight> <nop>

imap <ScrollWheelUp> <nop>
imap <S-ScrollWheelUp> <nop>
imap <C-ScrollWheelUp> <nop>
imap <ScrollWheelDown> <nop>
imap <S-ScrollWheelDown> <nop>
imap <C-ScrollWheelDown> <nop>
imap <ScrollWheelLeft> <nop>
imap <S-ScrollWheelLeft> <nop>
imap <C-ScrollWheelLeft> <nop>
imap <ScrollWheelRight> <nop>
imap <S-ScrollWheelRight> <nop>
imap <C-ScrollWheelRight> <nop>

vmap <ScrollWheelUp> <nop>
vmap <S-ScrollWheelUp> <nop>
vmap <C-ScrollWheelUp> <nop>
vmap <ScrollWheelDown> <nop>
vmap <S-ScrollWheelDown> <nop>
vmap <C-ScrollWheelDown> <nop>
vmap <ScrollWheelLeft> <nop>
vmap <S-ScrollWheelLeft> <nop>
vmap <C-ScrollWheelLeft> <nop>
vmap <ScrollWheelRight> <nop>
vmap <S-ScrollWheelRight> <nop>
vmap <C-ScrollWheelRight> <nop>

您将不再能够使用终端的绑定使用Ctrl + Shift + C复制选择,因此您将不得不在vim中使用"+y将选择复制到系统剪贴板中。