Torna alla navigazione nella directory precedente dopo aver aperto il file in vim


122

Quando apro una directory navigando in vim, posso aprire un file spostando il cursore su un nome file e premendo Enter.

Ora, esiste un comando per tornare alla navigazione nella directory precedente?

In caso contrario, esiste un modo per aprire un file senza chiudere la modalità di navigazione della directory?


2
Non ne sono sicuro, ma se vuoi una navigazione nelle directory davvero comoda, ti consiglio di dare un'occhiata a NERDTree
Johan Kotlinski

Risposte:


197

Puoi tornare all'ultimo buffer usando :b#.

Se hai appena aperto un file, ti riporterà alla directory di navigazione.

Aggiornamento : poiché questa risposta è stata accettata come risposta corretta ed è quindi in cima, vorrei riassumere un po 'le risposte, inclusa quella di @romainl che imho è quella corretta.


3
Dovrebbe essere :b#. Lo aggiusterei, ma le modifiche a carattere singolo non volano.
echristopherson

Se lo faccio vim <dirname>e poi vado al file e premo Enter, non funziona; se apro vim, :e <dirname>seleziona file e Enterfunziona. In entrambi i casi :buffersmostra un solo buffer. Non sono sicuro del perché sia ​​così.
mcmlxxxvi

@mcmlxxxvi secondo il wiki di vim b#funziona solo per "buffer precedentemente modificati": vim.wikia.com/wiki/…
ezdazuzena

3
Bella cosa riassumere tutte le altre risposte corrette, vorrei che più persone lo facessero.
LightMan

1
@veich Grazie per il tuo commento, ma per ora non lo farò poiché la domanda riguarda solo il tornare indietro. Questa non è una pagina wiki, sto solo riassumendo le altre domande per motivi di chiarezza. Spero che tu lo capisca.
ezdazuzena

88

È possibile utilizzare Ctrl- Oper tornare al buffer precedente.


2
Molto utile in generale (ad esempio per tornare indietro da gf), ma in caso di esplorazione di directory non mi riporta alla "linea" in cui mi trovavo quando aprivo il file. :Rex<Enter>, che è un po 'goffo (5 battiture contro 1), lo fa. Probabilmente questo è un candidato per la mappatura ...
Tomasz Gandor

34

Il comando corretto per tornare all'elenco di netrw è :Rex[plore]. Puoi eseguirlo anche dopo aver saltato da e verso dozzine di file.


Quando si modifica un file dopo essere usciti dall'elenco di netrw, il ritorno con è :Rexplorediverso dal ritorno con :Explore?
Jasha

Per rispondere alla mia domanda, sembra che :Rexploreti ritorni sempre allo stesso elenco di netrw che stavi navigando prima, mentre :Explorefornisce l'elenco per la directory di qualsiasi file sia attualmente aperto.
Jasha

29

:Ex ti riporterà indietro (e ti mostrerà cosa hai modificato e non salvato).


1
Ho votato al rialzo OGNI una delle risposte. erano tutti utili
javadba il

Bello, è un po 'meglio che Ctrl-Operché evidenzia la directory genitore ( ..), invece della riga superiore (qualche intestazione Netrw), ma non è ancora dove ho lasciato l'explorer (il file aperto). 4 sequenze di tasti contro 1, un po 'di risparmio di js per navigare fino a dove mi trovavo, ma è comunque probabile :Rex<Enter>che crei una mappa se mi aspetto molta navigazione.
Tomasz Gandor

26

Mi affido a Ctrl ^ per andare avanti e indietro in bianco e nero di due buffer.


1
Questo ha funzionato per me con vim 7.3 su OSX da homebrew. Ctrl-O non sembra funzionare.
Gardner Bickford

5
Non hai nemmeno bisogno di shift, puoi semplicemente Ctrl 6
mVChr

più correttamente, questo "modifica il file alternativo": vimdoc.sourceforge.net/htmldoc/editing.html#CTRL- ^
ezdazuzena

Eccellente! Anche se funziona solo avanti e indietro (come un "Annullamento di 1 livello"), ma in realtà ritorna alla linea su cui mi trovavo! Sembra che non stia mappando, :Rex<CR>dopotutto! (Ovviamente, solo quando non vedo l'ora di "tornare indietro" dalle navigazioni annidate (saltato su un altro file ecc.)
Tomasz Gandor

14

Di solito uso solo :E. È facile da ricordare e ti riporta all'elenco delle directory del file che avevi aperto.


2
Sono sorpreso che questo abbia troppi pochi voti. È sicuramente una risposta.
TaoPR

1
Non essere sorpreso: sul mio attuale vim 7.4.x :Eè ambiguo e non fa nulla. Devi digitare almeno :E<CR>.
Tomasz Gandor

1
Questo è lo stesso :Exo :Explorerse non Eè definito un altro comando che inizia con . Vedere per esempio stackoverflow.com/a/14367507/1141095
ezdazuzena
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.