Pregunta ¿Cómo salir del explorador de archivos Ranger de nuevo al símbolo del sistema, pero mantener el directorio actual?


estoy usando Explorador de archivos de terminal Ranger desde dentro de una terminal de Linux.
Supongamos que empiezo desde el símbolo del sistema en el directorio principal y ejecuto el ranger

user@/home/user $ ranger

Ranger se abre ..... y dentro del programa de explorador exploro:

/media/ubuntu/sdf675d7sf5sdfs7/some_directory

Si presiono q para salir de Ranger, vuelvo a la misma carpeta desde la que lancé Ranger. es decir

user@/home/user $

¿Es posible salir de Ranger, y permanecer en el directorio en el que estaba con ranger, i.

user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $  

14


origen




Respuestas:


De acuerdo con su manual

--choosedir=targetfile    
    Allows you to pick a directory with ranger. When you exit ranger, it will write the last visited directory into targetfile.

Entonces, todo lo que necesitas hacer es crear un alias como este:

alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'

Y se recomienda escribir este alias en el rc de su caparazón favorito.


17



wow, eso es muy inteligente. Nunca se me ocurrió que podrías darle un comando a un programa, terminarlo con un ; y luego especifique más comandos después del punto y coma que - Supongo que se ejecutan en el punto donde se cierra ranger , ¡Gracias! - the_velour_fog
Considere usar .rangerdir en vez de hacerlo oculto O elimínalo al final, rm -d $HOME/rangerdir. - Mateen Ulhaq
Esto es genial, pero si lo entiendo correctamente, esto significaría que tienes ese comportamiento de forma permanente. Sería bueno si hubiera una manera de tener la opción de salir al directorio de ranger actual O al directorio en el que se encontraba cuando inició el ranger. - neverfox
neverfox Una vez que crea un alias, depende de usted si le ofrece la selección del directorio para ingresar dentro de ese alias. La selección se puede hacer antes de que se llame al binario o después de que haya finalizado. - Gombai Sándor


S

Si golpeas S, abre un nuevo shell en el directorio actual.

Entonces si golpeas Ctrl + D en el caparazón, se remonta a ranger.

Esta solución es a menudo lo suficientemente buena.


13





Para aprovechar la respuesta de Gombai Sándor, sugiero hacer un ajuste menor al alias:

alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'

Al cambiar "$ Home / rangerdir" a "$ Home / .rangerdir", hace que el archivo creado por el alias esté oculto. solo lo hace para que no moleste demasiado la carpeta de inicio. no hace una diferencia funcional en la forma en que funciona.


3





Encontré una solución más fácil. Cuando instale el ranger, colocará un script en su carpeta bin que, si se ejecuta, iniciará el programa. Pero si lo fuente, con

$ source ranger

iniciará el ranger y te dejará en la última carpeta visitada cuando salgas.

entonces si quieres este comportamiento por defecto, solo hazlo

$ alias ranger = 'fuente ranger'

o mejor aún ponerlo en su archivo .bashrc.

Para ver la documentación y la implementación de esta característica, lea la secuencia de comandos del guardabosques en su carpeta bin.


2





Gracias a Gombai por la inspiración, pero en Ubuntu 14.04 LTS encontré que la solución no funcionaba del todo. Modificándolo ligeramente y guardándolo como un alias en mi .bashrc, lo siguiente funcionó perfectamente (después de crear el rangerdir archivo):

alias ranger='ranger --choosedir=$HOME/rangerdir;cd "$(cat $HOME/rangerdir)"'

La siguiente publicación en askubuntu me ayudó cuando intentaba descubrir por qué las diferentes soluciones que estaba intentando no funcionaban: https://askubuntu.com/questions/404141/why-cant-i-pipe-into-cd


1