Как я могу изменить поведение колеса прокрутки в 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".

Другие вопросы по тегам