Question Comment déplacer l'écran sans déplacer le curseur dans Vim?


J'ai récemment découvert Ctrl+E et Ctrl+Y des raccourcis pour Vim qui déplacent respectivement l'écran vers le haut et le bas avec un pas de ligne, sans déplacer le curseur.

Connaissez-vous une commande qui laisse le curseur là où il se trouve mais déplace l'écran de sorte que la ligne qui a le curseur devienne la première ligne? (avoir une commande pour la dernière ligne serait un bon bonus).

Je peux y parvenir en appuyant manuellement sur Ctrl+E (ou Ctrl+Y) le bon nombre de fois, mais avoir une commande qui en quelque sorte le fait directement serait bien.

Des idées?


491
2017-08-11 13:21


origine


Réponses:


  • zz - déplacer la ligne actuelle vers le milieu de l'écran
    (Attention avec zz, si vous avez verrouillage des majuscules accidentellement, vous économiserez et quitter vim!)
  • zt - déplacer la ligne actuelle en haut de l'écran
  • zb - bouge toi ligne actuelle au bas de la écran

710
2017-08-11 13:34



Aditionellement:

  • Ctrl-y Déplace l'écran d'une ligne
  • Ctrl-e Déplace l'écran d'une ligne
  • Ctrl-tu Déplace le curseur et l'écran d'une demi-page
  • Ctrl- Déplace le curseur et l'écran vers le bas ½ page
  • Ctrl-b Déplace l'écran d'une page, curseur à la dernière ligne
  • Ctrl-F Déplace l'écran d'une page vers le bas, curseur sur la première ligne

Ctrl-y et Ctrl-e changez seulement la position du curseur s'il est déplacé hors de l'écran.

Courtoisie de http://www.lagmonster.org/docs/vi2.html 


497
2018-06-27 21:43



Vim nécessite que le curseur soit dans l'écran actuel à tout moment, cependant, vous pouvez mettre en signet la position actuelle, faire défiler et retourner là où vous étiez.

mg  # This book marks the current position as g (this can be any letter)
<scroll around>
`g  # return to g

29
2017-08-11 13:25



Pour laisser le curseur dans la même colonne lorsque vous utilisez Ctrl+, Ctrl+F, Ctrl+B, Ctrl+U, g, H, M, L, gg

vous devez définir l'option suivante:

:set nostartofline

12
2018-02-18 07:35



Voici ma solution dans vimrc:

nnoremap k kzz
nnoremap j jzz
nnoremap p pzz
nnoremap P Pzz
nnoremap G Gzz
nnoremap x xzz
inoremap <ESC> <ESC>zz
nnoremap <ENTER> <ENTER>zz
inoremap <ENTER> <ENTER><ESC>zza
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza

Alors que le curseur restera au milieu de l'écran, et l'écran va monter ou descendre.


8
2018-05-10 09:33



Vous pouvez trouver des réponses à cette question utile: Défilement Vim relatif au curseur, mappage personnalisé: vous pouvez utiliser ScrollToPercent(0) de cette question à faire cela.


4
2017-08-11 13:30



Vous pouvez préfixer vos commandes de déplacement du curseur avec un nombre qui répètera cette commande plusieurs fois

10Ctrl+E ça ira Ctrl+E 10 fois au lieu d'un.


4
2018-03-03 13:23