Mise à jour: j'ai maintenant mis ce code, refactoring quelque peu selon les lignes directrices à l' :help write-plugin
, pour un dépôt Github.
À l'aide du Clavier
Voici ce que j'ai dans ma .vimrc
:
function SmoothScroll(up)
if a:up
let scrollaction="^Y"
else
let scrollaction="^E"
endif
exec "normal " . scrollaction
redraw
let counter=1
while counter<&scroll
let counter+=1
sleep 10m
redraw
exec "normal " . scrollaction
endwhile
endfunction
nnoremap <C-U> :call SmoothScroll(1)<Enter>
nnoremap <C-D> :call SmoothScroll(0)<Enter>
inoremap <C-U> <Esc>:call SmoothScroll(1)<Enter>i
inoremap <C-D> <Esc>:call SmoothScroll(0)<Enter>i
Caractéristiques:
- Faites défiler sur la base de la Vim
scroll
option.
- Personnalisable la vitesse de défilement (régler l'heure de l'argument de l'
sleep
commande; je l'utilise dizaines de millisecondes). Remarque: tout comme le ralentissement de la cadence sur une vidéo, si de ralentir le défilement fluide trop il sera de défilement saccadé, pas de défilement fluide. Mais ce qui fonctionne le mieux pour vous.
- Fonctionne en mode normal ou en mode insertion.
Remarque: tout ce que vous copiez-et-dérouleurs, rappelez-vous que l' ^
caractère indique un caractère de contrôle; copier-coller va produire des résultats non valides et doivent être entrées manuellement (avec CTRL-V)!
Cependant, l' <C-U>
et <Enter>
style de syntaxe sont littéralement tapé comme ces personnages; la carte de commande intelligemment les convertit un caractère de contrôle.
À l'aide de la Souris
La question mentionne que le défilement avec la souris fonctionne bien dans GVim, mais un clavier solution est souhaitée. Cela implique, pour moi, que le demandeur peut être intéressé par une souris solution, si elle travaille régulièrement terminal de Vim.
Pour moi, en tournant le support de la souris sur lisse permet de faire défiler la molette de la souris. Aussi, pour moi, le défilement doux est le plus important quand je suis à la recherche autour (c'est à dire en mode normal), pas quand je suis d'édition (en mode insertion), et si je ne suis pas activement l'édition, le besoin de mes mains pour rester sur le clavier à tout moment est retiré, de sorte que cela fonctionne bien.
Sur la base de cette question, cependant, il semblerait que certaines personnes ont à faire un peu plus manuel d'installation au-delà de simplement en tournant le bouton de la souris (je viens de l'utiliser set mouse=n
):
Mon .vimrc
a les lignes suivantes
set mouse=a
map <ScrollWheelUp> <C-Y>
map <ScrollWheelDown> <C-E>