J'ai récemment découvert Ctrl+E et Ctrl+Y raccourcis pour Vim qui déplacent respectivement l'écran de haut en bas avec un pas d'une 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 contenant le curseur devienne la première ligne? (avoir une commande pour la dernière ligne serait un bonus sympa).
Je peux y parvenir en appuyant manuellement Ctrl+E (ou Ctrl+Y) le nombre correct de fois, mais avoir une commande qui le fait directement serait bien.
Des idées?
vim
!) Aditionellement:
Ctrl-y et Ctrl-e ne changez la position du curseur que s'il était déplacé de l'écran.
Avec l'aimable autorisation de http://www.lagmonster.org/docs/vi2.html
Vim exige que le curseur se trouve en permanence sur l'écran actuel. Toutefois, vous pouvez marquer la position actuelle en faisant défiler un signet, puis revenir à l'endroit où vous vous trouviez.
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
Voici ma solution dans vimrc:
"keep cursor in the middle all the time :)
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>zzi
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
Pour que le curseur reste au milieu de l'écran et que celui-ci se déplace vers le haut ou le bas.
Pour laisser le curseur dans la même colonne lorsque vous utilisez Ctrl+D, Ctrl+F, Ctrl+B, Ctrl+U, G, H, M, L, gg
vous devez définir l'option suivante:
:set nostartofline
Vous pouvez préfixer les commandes de déplacement du curseur avec un numéro et répéter cette commande autant de fois que nécessaire.
1Ctrl+E ça ira Ctrl+E 10 fois au lieu d'un.
Vous pouvez trouver des réponses utiles à cette question: Défilement de Vim par rapport au curseur, mappage personnalisé : vous pouvez utiliser ScrollToPercent(0)
à partir de cette question pour le faire.
zEnter fait exactement ce que cette question demande.
Cela fonctionne étrangement zz ne fonctionnerait pas (vim 7.4.1689 sur Ubuntu 2016.04 LTS sans .vimrc spécial)
Parfois, il est utile de faire défiler le texte avec les touches K et J. J'ai donc cette fonction "mode de défilement" dans mon fichier .vimrc (également lié sur zs)
Surpris, personne n'utilise l'option option de défilement qui maintient le curseur au milieu de la page. Essayez-le avec:
:set so=999
C'est la première méthode recommandée sur le wiki vim et fonctionne bien
Il y a un nouveau plugin que j'ai écrit, il vous permet de naviguer dans le fichier de trous sans déplacer la position du curseur. Cela consiste à replier les lignes entre votre position et la position de votre cible, puis à sauter par-dessus le pli. Ou abandonnez-le et ne bougez pas du tout.
Il est également facile de passer rapidement du curseur à la première ligne, du curseur à la dernière ligne et du curseur au milieu en cliquant simplement sur j, k ou l (lorsque vous êtes dans le mode du plugin).
Je suppose que ce serait un bon ajustement ici: https://github.com/anschnapp/move-less