Как я могу изменить поведение колеса прокрутки в vim, чтобы оно прокручивалось вместо перемещения курсора?
Я хотел бы прокрутить вверх, чтобы быть эквивалентным c-y c-y c-y
и прокрутка вниз, чтобы быть эквивалентной c-e c-e c-e
, Документация здесь, кажется, предполагает, что это уже должно быть, или я могу обойти это, вставив это в мой .vimrc
:
map <ScrollWheelUp> <C-Y>
map <S-ScrollWheelUp> <C-U>
map <ScrollWheelDown> <C-E>
map <S-ScrollWheelDown> <C-D>
Ни одно из этих решений, похоже, не работает. я использую vim
с терминала в Ubuntu 11.10.
2 ответа
Извините, что вам пришлось бороться с этим. Это на самом деле очень просто. Просто добавьте следующую строку в ваш ~ / .vimrc:
set mouse=a
Если этот параметр включен, вы не сможете (в * nix) копировать данные из vim, просто выделив их мышью; но если вы удерживаете клавишу Shift ( опция для OSX) при выборе, она будет работать как прежде.
Из моего ~/.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
".