Je trouve souvent que faire défiler une page entière est trop désorientant, une demi-page trop, mais un quart de page est juste. Je le fais actuellement simplement en maintenant enfoncées les touches fléchées.
Comment faire défiler 25% de la page vers le bas et vers le haut facilement?
cursor-movement
scrolling
Louis Hong
la source
la source
Réponses:
Peut ctrld- être et ctrlupourrait être ce que vous recherchez. Par défaut, ils déplacent la moitié de l'écran.
De
:h CTRL-D
:Ce qui signifie que la première fois que vous voulez faire défiler une fenêtre, vous pouvez faire XXctrldoù XX est le 25% du nombre de lignes de votre fenêtre. Comme il définit
scroll
la valeur XX, vous pouvez ensuite utiliser ctrldet ctrlupour déplacer 25% de l'écran.De plus, je pense que cela
:h scrolling
pourrait être intéressant pour vous.Éditer
Et voici une autre solution avec une fonction et quelques mappages à ajouter à votre
.vimrc
:La fonction obtiendra la hauteur de la fenêtre actuelle et, en fonction de son paramètre, fera défiler l'écran vers le haut ou vers le bas d'un quart de la hauteur.
Les mappages appellent la fonction, la première à monter et la seconde à descendre.
Bien sûr, vous pouvez modifier
<up>
et<down>
utiliser d'autres touches si vous souhaitez conserver le comportement par défaut de vos touches fléchées.la source
ctrl-E
etctrl-Y
dans les mappages, car a). vous disposez alors de raccourcis distincts pour le défilement 1/2 page et 1/4 page. b). le comportement dectrl-U
/ctrl-D
est cohérent et ne dépend pas de si vous avez déjà utilisé le mappage.let key="^U"
la partie entre les guillemets doubles est censée représenter le code clé dectrl+u
. Donc, si vous avez copié la fonction dans vim, placez votre curseur sur le premier hitci"
de double guillemet pour modifier le contenu des guillemets, puis frappezctrl+v
suivictrl+u
de la même chose sur la lignelet key="^D"
.let key="^Y"
au lieu delet key="^U"
. Cela créera le même comportement mais sans affecter le'scroll'
paramètre.Vous pouvez utiliser ctrleet ctrlypour déplacer la page d'une ligne vers le haut et vers le bas.
Ensuite, si vous souhaitez 20ctrledéplacer +/- 25%, vous pouvez utiliser et cela vous fera descendre de 20 lignes.
Voici également une bonne question expliquée qui est similaire à la vôtre: /programming/3458689/how-to-move-screen-without-moving-cursor-in-vim
la source
J'ai varié l' approche statox pour qu'elle défile de manière plus cohérente sur les retours à la ligne. Si vous voulez un quart de pas, remplacez 0,618 par 0,25 ou autre.
la source
Si vous voulez une bonne réponse générale et non pas un 25% exact, vous pouvez factoriser le nombre de lignes normales sur une page en divisant par 25 et définir des mappages système. Par exemple, si vous avez normalement environ 100 lignes sur un écran à la fois, 25% de ce nombre est de 25 lignes afin que vous puissiez définir un mappage de touches sur quelque chose comme votre J et K majuscule pour vous déplacer rapidement de haut en bas de 25 lignes
Si vous voulez simplement sauter au quart de point du fichier entier, alors en mode normal, tapez simplement:
la source
noremap J 25j
coder en dur la valeur25
ainsi lorsque, par exemple, vous divisez horizontalement une fenêtre de 100 lignes, votre mappage naviguera en fait à 50% des nouvelles fenêtres. À propos de votre deuxième option,:25%
je ne savais pas qu'elle existait, mais d'après mes tests, il semble qu'elle place le curseur sur une position basée sur la première ligne: si j'ai un tampon de 100 lignes et que je veux avancer de 25%, la frappe:25%
m'apportera à la ligne 25, peu importe où se trouvait mon curseur. Pourriez-vous également mettre la rubrique d'aide décrivant cette fonctionnalité que je ne trouve pas dans le document?:h N%
:-)