Aller au répertoire arrière après avoir ouvert le fichier dans vim


123

Lorsque j'ouvre un répertoire en parcourant vim, je peux ouvrir un fichier en déplaçant le curseur vers un nom de fichier et en appuyant sur Enter.

Maintenant, y a-t-il une commande pour revenir à la navigation précédente dans le répertoire?

Sinon, existe-t-il un moyen d'ouvrir un fichier sans fermer le mode de navigation dans le répertoire?


2
Je ne suis pas sûr, mais si vous voulez une navigation dans les répertoires vraiment pratique, je vous recommande de consulter NERDTree
Johan Kotlinski

Réponses:


198

Vous pouvez revenir au dernier tampon en utilisant :b#.

Si vous venez d'ouvrir un fichier, il vous ramènera simplement à la navigation dans le répertoire.

Mise à jour : Étant donné que cette réponse s'est avérée être acceptée comme la bonne réponse et qu'elle est donc en haut, j'aimerais résumer un peu les réponses, y compris celle de @romainl qui à mon avis est la bonne.


3
Cela devrait être :b#. Je le réparerais, mais les modifications à un seul caractère ne volent pas.
echristopherson

Si je le fais vim <dirname>et que j'accède au fichier et que j'appuie sur Enter, cela ne fonctionne pas; si j'ouvre vim, :e <dirname>sélectionnez le fichier et Entercela fonctionne. Dans les deux cas :buffers, un seul tampon est affiché. Je ne sais pas pourquoi il en est ainsi.
mcmlxxxvi

@mcmlxxxvi selon le wiki vim b#ne fonctionne que pour les "tampons précédemment édités": vim.wikia.com/wiki
...

3
Belle chose qui résume toutes les autres bonnes réponses, j'aimerais que plus de gens le fassent.
LightMan

1
@veich Merci pour votre commentaire, mais je ne le ferai pas pour le moment car la question ne concerne que le recul. Ce n'est pas une page wiki, je résume simplement les autres questions par souci de clarté. J'espère que vous comprenez cela.
ezdazuzena

88

Vous pouvez utiliser Ctrl- Opour revenir au tampon précédent.


2
Très utile en général (par exemple pour revenir en arrière gf), mais en cas d'exploration de répertoires, cela ne me ramène pas à la "ligne" sur laquelle j'étais lors de l'ouverture du fichier. :Rex<Enter>, ce qui est un peu maladroit (5 frappes contre 1), le fait. C'est probablement un candidat pour la cartographie ...
Tomasz Gandor

34

La commande appropriée pour revenir à la liste netrw est :Rex[plore]. Vous pouvez l'exécuter même après avoir sauté vers et depuis des dizaines de fichiers.


Lors de la modification d'un fichier après avoir quitté la liste netrw, le retour avec :Rexploreest-il différent du retour avec :Explore?
Jasha le

Pour répondre à ma propre question, il semble que cela :Rexplorevous ramène toujours à la même liste netrw que vous parcouriez auparavant, alors que vous :Exploredonne la liste du répertoire du fichier ouvert actuellement.
Jasha le

29

:Ex vous ramènera (et vous montrera ce que vous avez édité et non sauvegardé).


1
J'ai voté pour CHAQUE l'une des réponses. ils étaient tous utiles
javadba

Bien, c'est un peu mieux que Ctrl-Oparce qu'il met en évidence le répertoire parent ( ..), au lieu de la ligne du haut (un en-tête Netrw), mais ce n'est toujours pas là où j'ai laissé l'explorateur (le fichier ouvert). 4 touches contre 1, une économie de js pour naviguer jusqu'à l'endroit où j'étais, mais je suis toujours susceptible de cartographier :Rex<Enter>si j'attends beaucoup de navigation.
Tomasz Gandor

26

Je compte sur Ctrl ^ pour aller et venir entre deux tampons.


1
Cela a fonctionné pour moi avec vim 7.3 sur OSX de homebrew. Ctrl-O ne semble pas fonctionner.
Gardner Bickford

5
Vous n'avez même pas besoin de décalage, vous pouvez simplement Ctrl 6
mVChr

plus correctement, cela "modifie le fichier alternatif": vimdoc.sourceforge.net/htmldoc/editing.html#CTRL- ^
ezdazuzena

Excellent! Bien que cela fonctionne juste dans les deux sens (comme un "1 niveau d'annulation"), mais il revient en fait à la ligne sur laquelle j'étais! On dirait que je ne mappe pas :Rex<CR>après tout! (Bien sûr, seulement quand je n'ai pas hâte de "revenir" à partir des navigations imbriquées (sautés vers un autre fichier, etc.).
Tomasz Gandor

15

J'utilise habituellement juste :E. Il est facile à retenir et vous ramène à la liste du répertoire du fichier que vous aviez ouvert.


2
Je suis surpris qu'il y ait trop peu de votes. C'est définitivement une réponse.
TaoPR

1
Ne soyez pas surpris - sur mon vim 7.4.x actuel :Eest ambigu et ne fait rien. Vous devez taper au moins :E<CR>.
Tomasz Gandor

1
C'est la même chose :Exou :Explorersi aucune autre commande commençant par Eest définie. Voir par exemple stackoverflow.com/a/14367507/1141095
ezdazuzena

0

Ctrl + : Aller de l'avant I

Ctrl+ : Revenir en arrière O

Vigueur :h jump-motions


De l'avis: Les réponses de code uniquement sont déconseillées sur Stack Overflow car elles n'expliquent pas comment cela résout le problème. Veuillez modifier votre réponse pour expliquer ce que fait ce code et comment il répond à la question, afin qu'il soit utile à l'OP ainsi qu'aux autres utilisateurs ayant également des problèmes similaires. Voir: Comment rédiger une bonne réponse? . Merci
sɐunıɔ ןɐ qɐp
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.