Vaya a la navegación del directorio posterior después de abrir el archivo en vim


122

Cuando abro un directorio navegando en vim, puedo abrir un archivo moviendo el cursor a un nombre de archivo y presionando Enter .

Ahora, ¿hay algún comando para volver a la navegación anterior del directorio?

Si no es así, ¿hay alguna forma de abrir un archivo sin cerrar el modo de exploración de directorios?


2
No estoy seguro, pero si desea una navegación de directorios realmente conveniente, le recomiendo que consulte NERDTree
Johan Kotlinski

Respuestas:


197

Puede volver al último búfer usando :b#.

Si acaba de abrir un archivo, lo devolverá a la exploración del directorio.

Actualización : dado que esta respuesta resultó ser aceptada como la respuesta correcta y, por lo tanto, está en la parte superior, me gustaría resumir un poco las respuestas, incluida la de @romainl que, en mi humilde opinión, es la correcta.


3
Eso debería ser :b#. Lo arreglaría, pero las ediciones de un solo carácter no vuelan.
Echristopherson

Si lo hago vim <dirname>y luego navego hasta el archivo y presiono Enter, no funciona; si abro vim, :e <dirname>selecciono el archivo y Enterfunciona. En ambos casos :buffersmuestra solo un búfer. No estoy seguro de por qué es así.
mcmlxxxvi

@mcmlxxxvi según la wiki de vim b#solo funciona para "búferes previamente editados": vim.wikia.com/wiki/…
ezdazuzena

3
Es bueno resumir todas las otras respuestas correctas, deseo que más personas hagan eso.
LightMan

1
@veich Gracias por tu comentario, pero no lo haré por ahora ya que la pregunta es solo sobre retroceder. Esta no es una página wiki, solo estoy resumiendo las otras preguntas en aras de la claridad. Espero que lo entiendas.
ezdazuzena

88

Puede utilizar Ctrl- Opara volver al búfer anterior.


2
Muy útil en general (por ejemplo, para navegar de regreso gf), pero en el caso de explorar directorios no me devuelve a la "línea" en la que estaba al abrir el archivo. :Rex<Enter>, que es algo torpe (5 pulsaciones frente a 1), lo hace. Probablemente este sea un candidato para el mapeo ...
Tomasz Gandor

34

El comando adecuado para volver a la nueva lista es :Rex[plore]. Puede ejecutarlo incluso después de haber saltado ay desde docenas de archivos.


Al editar un archivo después de salir de la nueva lista, ¿regresar con :Rexplorealgo diferente de regresar con :Explore?
Jasha

Para responder a mi propia pregunta, parece que :Rexploresiempre lo devuelve a la misma lista nueva que estaba navegando antes, mientras que :Exploreproporciona la lista del directorio de cualquier archivo que esté abierto actualmente.
Jasha

29

:Ex lo llevará de regreso (y le mostrará lo que editó y no guardó).


1
Elegí CADA una de las respuestas. todos fueron útiles
javadba

Bien, es un poco mejor Ctrl-Oporque resalta el directorio principal ( ..), en lugar de la línea superior (algún encabezado Netrw), pero aún no está donde dejé el explorador (el archivo abierto). 4 pulsaciones de teclas frente a 1, algo de ahorro de mensajes de jcorreo electrónico para navegar hasta donde estaba, pero aún así es probable que haga un mapa :Rex<Enter>si espero mucha navegación.
Tomasz Gandor

26

Confío en Ctrl ^ para ir y venir b / w dos búferes.


1
Esto funcionó para mí con vim 7.3 en OSX de homebrew. Ctrl-O parece no funcionar.
Gardner Bickford

5
Ni siquiera necesita turno, solo puede Ctrl 6
mVChr

más correctamente, esto "edita el archivo alternativo": vimdoc.sourceforge.net/htmldoc/editing.html#CTRL- ^
ezdazuzena

¡Excelente! Aunque funciona de un lado a otro (como un "Deshacer de 1 nivel"), ¡en realidad vuelve a la línea en la que estaba! ¡Parece que no estoy mapeando :Rex<CR>después de todo! (Por supuesto, solo cuando no tenga ganas de "volver" desde navegaciones anidadas (salté a otro archivo, etc.).
Tomasz Gandor

14

Por lo general, solo uso :E. Es fácil de recordar y lo lleva de regreso a la lista de directorios del archivo que tenía abierto.


2
Me sorprende que tenga muy pocos votos. Definitivamente es una respuesta.
TaoPR

1
No se sorprenda, en mi vim actual 7.4.x :Ees ambiguo y no hace nada. Necesita escribir al menos :E<CR>.
Tomasz Gandor

1
Esto es igual :Exo :Explorersi no Ese define otro comando que comience con . Vea, por ejemplo, stackoverflow.com/a/14367507/1141095
ezdazuzena
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.