7

Я хотел бы, чтобы прокрутка вверх была эквивалентна 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 ответа2

5

Извините, что вам пришлось бороться с этим. Это на самом деле очень просто. Просто добавьте следующую строку в ваш ~/.vimrc:

set mouse=a

Если этот параметр включен, вы не сможете (в * nix) копировать данные из vim, просто выделив их мышью; но если вы удерживаете клавишу Shift (опция для OSX) при выборе, она будет работать как прежде.

2

Из моего ~/.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 ».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .