8 votes

Comment puis-je modifier le comportement de la molette de défilement dans vim, afin qu'elle défile au lieu de déplacer le curseur ?

Je voudrais que le défilement vers le haut soit équivalent à c-y c-y c-y et le défilement vers le bas pour être équivalent à c-e c-e c-e . La documentation aquí semble suggérer que cela devrait déjà être le cas, ou je peux contourner le problème en mettant ceci dans mon .vimrc :

map <ScrollWheelUp> <C-Y>
map <S-ScrollWheelUp> <C-U>
map <ScrollWheelDown> <C-E>
map <S-ScrollWheelDown> <C-D>

Aucune de ces solutions ne semble fonctionner. J'utilise vim à partir du terminal dans Ubuntu 11.10.

7voto

Lambart Points 1032

Désolé que tu aies eu à te battre avec celui-là. C'est en fait très simple. Il suffit d'ajouter la ligne suivante à votre ~/.vimrc :

set mouse=a

Si cette option est activée, vous ne pourrez pas (sous *nix) copier des éléments de vim en les sélectionnant simplement avec la souris ; mais si vous maintenez la touche Shift ( Option pour OSX) pendant la sélection, il fonctionnera comme avant.

5voto

Patrick Klug Points 5320

De mon ~/.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>

Cela a pour effet secondaire malheureux de faire en sorte que la molette de défilement ne fasse pas défiler la fenêtre située sous le curseur de la souris, mais plutôt la fenêtre actuellement active.

Quant à savoir si Vim dans un terminal sera capable de défiler avec la souris, cela dépend de si votre émulateur de terminal passera les séquences d'échappement à Vim lorsque la molette de défilement est utilisée. Xterm peut le faire, bien que cela puisse nécessiter un peu d'aide de votre part - voir " :help xterm-mouse-wheel ".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X