Из моего ~/.gvimrc:
" Scroll Wheel = Up/Down 4 lines
" Shift + Scroll Wheel = Up/Down 1 page
" Control + Scroll Wheel = Up/Down 1/2 page
" Meta + Scroll Wheel = Up/Down 1 line
noremap <ScrollWheelUp> 4<C-Y>
noremap <ScrollWheelDown> 4<C-E>
noremap <S-ScrollWheelUp> <C-B>
noremap <S-ScrollWheelDown> <C-F>
noremap <C-ScrollWheelUp> <C-U>
noremap <C-ScrollWheelDown> <C-D>
noremap <M-ScrollWheelUp> <C-Y>
noremap <M-ScrollWheelDown> <C-E>
inoremap <ScrollWheelUp> <C-O>4<C-Y>
inoremap <ScrollWheelDown> <C-O>4<C-E>
inoremap <S-ScrollWheelUp> <C-O><C-B>
inoremap <S-ScrollWheelDown> <C-O><C-F>
inoremap <C-ScrollWheelUp> <C-O><C-U>
inoremap <C-ScrollWheelDown> <C-O><C-D>
inoremap <M-ScrollWheelUp> <C-O><C-Y>
inoremap <M-ScrollWheelDown> <C-O><C-E>
Это имеет неприятный побочный эффект, так что колесо прокрутки не прокручивает окно под курсором мыши, а скорее текущее активное окно.
Относительно того, сможет ли Vim в терминале прокручиваться с помощью мыши, зависит от того, передаст ли ваш эмулятор терминала экранирующие последовательности в Vim при использовании колеса прокрутки. Xterm может это сделать, хотя может потребоваться небольшая помощь с вашей стороны - см. « :help xterm-mouse-wheel
».