Je voudrais aller au fichier que je viens de modifier en dernier et au prochain type de plugins MRU.
:bnext
et :bprev
fonctionne parfois, mais le plus souvent je me retrouve juste dans un fichier obscur dont je ne me souviens pas avoir été édité et obligé de retomber sur le plugin MRU.
Y a-t-il un moyen de le réparer?
Ctrl-^
permute entre les deux derniers fichiers. Quelle est la meilleure façon de naviguer entre plusieurs?
Je comprends que cela pourrait être délicat, mais je suis d'accord avec tout ce qui peut améliorer le :bn
:bp
comportement actuel . Les tampons que je vois souvent sont totalement hors de propos. Peut-être existe-t-il un plugin qui peut garder une trace des fichiers récents et fournir des crochets pour que je puisse créer des mappages?
Répondre aux commentaires a un peu éclairé mes pensées. Je crois que ce que je veux, c'est pouvoir parcourir les fichiers dans l'ordre des dernières sauvegardes. De cette façon, si je retourne dans l'historique, l'ordre ne changera pas tant que je n'aurai pas enregistré le fichier qui deviendra le dernier et que je ferai un pas "en arrière" vers le fichier enregistré juste avant cela, c'est-à-dire celui à partir duquel je suis parti.
Quelque chose comme une Ctrl-O
Ctrl-I
paire qui change de fichiers immédiatement sans sauter dans le tampon actuel. Un peu comme u
et U
dans netrw:
u Change to recently-visited directory |netrw-u|
U Change to subsequently-visited directory |netrw-U|
Ctrl-O
(ou parfoisCtrl-T
) jusqu'à ce que j'arrive.Ctrl-O
etCtrl-I
. Mais cela saute entre les points d'édition et cela brise le flux. Tout ce que je veux aller et venir entre les tampons dans l'ordre d'accès. Comment les plugins affichent une liste des fichiers les plus récents? Les gardent-ils en interne?Ctrl-^
permute entre les deux derniers fichiers. Mais quelle est la meilleure façon de naviguer entre plusieurs?Ctrl-O/I
sont des fwiw spécifiques aux fenêtres, tandis que MRU est généralement global. Si vous voulez commander par le dernier accès, dès que vous sautez en arrière une fois, l'ordre de la liste change, ce qui complique encore les choses.Réponses:
J'ai écrit une petite fonction pour frapper CTRL-O à plusieurs reprises pour moi, jusqu'à ce que le tampon change.
Vous pouvez le trouver ici . Je l'ai mappé à CTRL-U mais vous pouvez remplacer CTRL-O si vous le souhaitez.
Vous pourriez probablement écrire quelque chose de similaire pour
<C-I>
.Problèmes:
En relation:
:jumps
répertorie les emplacements historiques que CTRL-O va parcourir.la source
:kwbd
pour fermer quelques tampons, que Vim revient aux tampons précédents dans l'ordre inverse de l'historique attendu. Peut-être que Vim a une liste MRU qu'il ne partage pas avec nous, ou peut-être qu'il choisit le tampon vers lequel se baser en fonction de l'historique de l'emplacement CTRL-O (:jumps
).autocmd InsertLeave * normal mZ
se souviendra du dernier fichier édité dans la marque globale Z . Vous pouvez y revenir avecg'Z
. // Oui,nmap <C-y> g'Z
mais j'ai toujours tendance à utiliser Ctrl-U plus souvent.Vous pouvez utiliser
:ls
pour afficher tous les tampons. Par exemple:Pour revenir au tampon
ext.markdown
, utilisez:e +Nbuf
, oùN
est le numéro de tampon de la première colonne. Par exemple::e +2buf
.Vous pouvez créer une fonction simple pour une expérience plus interactive:
Après avoir utilisé
:ChooseBuf
ou<Leader>b
vous pouvez simplement taper le numéro du tampon que vous souhaitez modifier.Ce n'est pas tout à fait "le plus récemment utilisé", car la commande est "le plus récemment ouvert" (c'est probablement aussi pourquoi
:bnext
/:bprev
ne fonctionne pas comme prévu).la source
<C-6>
est ce dont vous avez besoin, qui vous ramène au tampon précédent que vous aviez ouvert avant celui en cours. Il y a aussi:bprev
&:bnext
que vous pourriez utiliser pour la même chose.la source
<C-6>
n'est pas mauvais mais je ne peux pas l'utiliser pour reculer de deux tampons.bprev
etbnext
ne sont pas dans l'ordre des sauts.<C-6>
le cas<C-^>
. Alors que sur de nombreux émulateurs de terminaux, il n'y a pas de distinction, sur certains (y compris celui fourni avec OS X), il y en a. Pour ce dernier cas, l'utilisation de laShift
clé est requise (en supposant la disposition Qwerty).Vous pouvez également utiliser
:oldfiles
pour obtenir une liste des fichiers que vous avez modifiés.La liste aura des numéros associés aux noms de fichiers. Choisissez un fichier, notez le numéro (disons 14) et ouvrez-le avec
:edit #<14
Vous pouvez également exécuter d'autres commandes sur ce fichier ou transmettre plusieurs fichiers à la fois à une commande. En savoir plus ICI
la source
:bro[wse] ol[dfiles][!]