Vim: Déplace le curseur à sa dernière position

Est-il possible en (g) Vim de déplacer le curseur à sa position précédente (en mode normal)? Quelque chose à faire dans la liste des positions de curseur précédentes serait idéal. Mais il suffirait aussi de passer au dernier emplacement (quelque chose comme cd - in bash avec des répertoires).

Voici une petite démonstration:

 line |1| <- cursor position line 2 line 3 line 4 

Et supposons que j’ai fait 2j , voici comment c’est maintenant:

 line 1 line 2 line |3| <- cursor position line 4 

Maintenant, je voudrais appuyer sur quelque chose (autre que 2k évidemment) pour revenir à la première position et éventuellement aux positions précédentes.

Le moyen le plus rapide est de bash soit:

"

(deux apostrophes) ou:

` `

(deux backticks). Notez que la différence est que le backtick va au même endroit sur la ligne, alors que l’apostrophe va au début de la ligne. Sur un clavier britannique, l’apostrophe est plus accessible, alors j’ai tendance à l’utiliser. Il y a des tonnes de marques utiles comme celle-ci, voir :help mark-motions .

Pour certains autres mouvements (pas 2 je pense), il y a aussi la liste de raccourcis qui vous permet de naviguer parmi plusieurs mouvements. Ctrl O et Ctrl Je fais cette navigation, mais voyez :help jump-motions pour plus d’informations.

Vous pouvez également utiliser g; et g, pour revenir en arrière dans la liste de vos emplacements d’ édition précédents.

Sur mes dispositions de clavier suisse et allemand, en tapant ; ne nécessite pas d’utiliser la Shift . Par conséquent, j’ai défini g- comme un alias plus pratique pour g; dans $MYVIMRC :

 " Map g- as an alias for g; nnoremap g- g; 

Dès l’aide (: aide saut):

: ju [mps] Imprime la liste de sauts (pas une commande de mouvement). {pas dans Vi} {non disponible sans le | | jumplist | fonctionnalité}

  *jumplist* 

Les sauts sont mémorisés dans une liste de sauts. Avec la commande CTRL-O et CTRL-I, vous pouvez accéder aux positions du curseur avant les sauts les plus anciens et revenir. Ainsi, vous pouvez monter et descendre la liste. Il y a une liste de saut séparée pour chaque fenêtre. Le nombre maximum d’entrées est fixé à 100. {non disponible sans le | | jumplist | fonctionnalité}

Pourquoi personne n’a trouvé le problème avec la réponse de DrAl ? Le ' ' ou ` ` ne résoudra pas le problème initial de cet article! Ces deux commandes ne fonctionneront pas pour certains mouvements de curseur comme 2 j , du moins pour moi. Cela rendra les débutants plus confus.

Le comportement de ' ' ou ` ` , et Ctrl I ou Ctrl O sont basés sur la liste de sauts. Le 2 j ne sauvegardera pas les changements de position dans la liste des sauts, donc ces commandes ne fonctionneront pas pendant 2 j .

' ' ou ` ` bascule entre la dernière position et la position actuelle. Ctrl I et Ctrl O parcourent l’historique de la liste de sauts.

g ; et g , se déplacer dans les positions de assembly, qui sont également très fréquemment utilisées.