Parfois, j'utilise des repères pour naviguer facilement dans différents fichiers en utilisant mA
, mB
... et 'A
, 'B
...
Et parfois (plus souvent que je ne l'admets) à cause de l'inattention ou pour quelque raison que ce soit, j'utilise m[LETTER]
avec une marque déjà existante qui efface sa valeur précédente lorsque je ne le veux pas. La plupart du temps, lorsque je le fais, je n'ai pas ouvert le fichier initialement pointé par la marque.
Dans ce cas, lorsque je me suis rendu compte immédiatement que j'avais fait une erreur, est-il possible d'obtenir la valeur précédente de ma marque autrement que de me rappeler où elle pointait, de naviguer vers cet emplacement et de la redéfinir?
Je n'ai pas trouvé de commande comme celle-ci dans le document, donc si elle n'existe pas, y a-t-il une solution intelligente que certains d'entre vous utilisent dans cette situation?
ctrl-o
,ctrl-i
et:jumps
) avec votre propre mémoire personnelle :)Réponses:
Voici quelques VimScript de base qui font à peu près ce que vous voulez.
Nous remplaçons les
ma
parmz
correspondances pour stocker la valeur actuelleg:previous_marks
avant d' appeler l'originalm
de mettre effectivement la marque. Nous définissons également à<Leader>ma
travers<Leader>mz
pour afficher l'historique de ladite marque.Vous voudrez probablement stocker les informations de
g:previous_marks
manière plus organisée et ajouter la possibilité de restaurer rapidement une marque (plutôt que de simplement voir les emplacements), mais cet exemple montre comment cela peut être fait, d'autres ajustements sont laissés en exercice au lecteur ;-)la source
Pas exactement ce que vous voulez, mais peut-être plus utile: le plugin de signature . Il montre les marques actuelles sous forme de signes dans la marge de la gouttière et dispose de raccourcis simples pour les modifier. Il peut également mettre la liste des panneaux dans une liste d'emplacement pour un accès rapide.
la source
Étant donné que le problème réel semble être la navigation entre plusieurs fichiers / positions, je suggère cette solution simple, basée sur le plugin Unite :
Cette commande (qui peut être mappée à quelque chose comme
<leader>j
par exemple) affichera la liste de sauts, avec un aperçu: chaque fois que vous parcourez la liste avecj
/k
, plusieurs lignes autour de la position du curseur dans ce fichier seront affichées.Alternative:
Les marques par défaut sont si faciles à remplacer: des signets nommés pourraient peut-être mieux correspondre à votre cas d'utilisation, par exemple avec le plugin simple_bookmarks .
la source