Souvent, je modifie un fichier - je pense que mon travail est terminé - puis je ferme le fichier et je passe à la chose suivante. Mais je me rends compte que je dois revenir à ce code et le modifier un peu plus.
Si j'ouvre à nouveau le fichier, je peux utiliser la .
marque et sauter à la position de la dernière modification avec '.
.
Maintenant, j'essaie de trouver un moyen d'utiliser les marques de vim pour accéder à des emplacements dans des fichiers que j'ai récemment visités, mais qui n'ont pas changé.
Je sais que je peux définir une marque manuellement, mais la plupart du temps, je ne m'attends pas à revenir et je ne fixe donc pas de marque et je dois utiliser une marque générée automatiquement par vim.
La "
marque semble que cela pourrait être un moyen d'y parvenir, à partir de :h motion
.
"
À la position du curseur lors de la dernière sortie du tampon actuel. Par défaut, le premier caractère de la première ligne. Voir | saut de dernière position | pour savoir comment l'utiliser pour chaque fichier ouvert. Une seule position est mémorisée par tampon, pas une pour chaque fenêtre. Tant que le tampon est visible dans une fenêtre, la position ne sera pas modifiée. {pas à Vi}.
Mais si je
- ferme toutes les fenêtres affichant un tampon (mais le tampon est toujours présent dans la liste des tampons). ou:
- tuer toutes les instances du tampon
la marque ne semble pas se mettre à jour, comment puis-je utiliser une marque pour sauter à un emplacement de la dernière position du curseur dans le tampon / fichier?
la source
Ctrl+o
etCtrl+i
...:h jump-motions
pour plus d'infosviminfo
"
marque lorsque vous ouvrez un fichier. Je voulais vraiment sauter uniquement à la dernière position du curseur manuellement. De plus, je ne pouvais tout simplement pas comprendre quand la"
marque est définie et mise à jour, donc pour moi, la"
marque est inutilisable.Réponses:
Voici une solution classique: utiliser
pour passer au dernier fichier HTML et ainsi de suite…
la source
WinLeave
car j'ai remarquéBufLeave
qu'il ne semble pas se déclencher lorsque vous fermez un fractionnement et que le tampon est toujours ouvert ailleurs. Je sais que c'est un peu un cas de bord, maisWinLeave
semble fonctionner sur un plus large éventail de situations de type "fermeture de fichier", mais je suis encore en train de tester ...J'ai écrit cette déclaration vimscript qui semble fonctionner
Explication
BufLeave
commande automatique: cela semble se déclencher lorsque vousbd
:normal
- il semble que par défaut, lacommand
partie de autocmd est une commande ex. Donc, pour dire à vim d'exécuter une commande en mode normal, vous devez ajouter:normal
ml
- mettre une marquel
(mnémonique: dernier )Usage
pour rappeler la position du curseur de la dernière fois que vous étiez dans le tampon, appuyez simplement sur
ou
la source
Si vous souhaitez que votre curseur rétablisse la dernière position connue de viminfo , vous pouvez utiliser
La réponse de romainl m'a été particulièrement utile, et je l'utilise beaucoup (depuis que je suis développeur web):
La dernière chose potentiellement utile est l'option
:help 'nostartofline
:la source