Estoy usando el explorador de archivos de terminal Ranger desde un terminal de Linux.
Digamos que comienzo desde el símbolo del sistema en el directorio de inicio y ejecuto el guardabosques
user@/home/user $ ranger
el guardabosques se abre ..... y dentro del programa de exploradores exploro para:
/media/ubuntu/sdf675d7sf5sdfs7/some_directory
Si luego presiono q para salir de Ranger, vuelvo a la misma carpeta desde la que inicié Ranger. es decir
user@/home/user $
¿Es posible salir del guardabosques y permanecer en el directorio en el que estaba con el guardabosques? I.
user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $
linux
command-line
terminal
ranger
the_velour_fog
fuente
fuente
;
y luego especificar más comandos después del punto y coma que, supongo que se ejecutan en el momento en que cierraranger
, ¡gracias!.rangerdir
lugar para ocultarlo. O bórrelo al finalrm -d $HOME/rangerdir
,.fish_config
y agregué una abreviatura pararanger --choosedir="$HOME/.rangerdir"; cd (cat $HOME/.rangerdir)
S
Si presiona
S
, se abre un nuevo shell en el directorio actual.Luego, si golpeas
Ctrl + D
el caparazón, vuelve aranger
.Esta solución suele ser lo suficientemente buena.
fuente
Encontré una solución más fácil. Cuando instalas Ranger, colocará un script en tu carpeta bin que, si se ejecuta, iniciará el programa. Pero si lo obtienes, con
lanzará Ranger y lo colocará en la última carpeta visitada cuando salga.
así que si quieres este comportamiento por defecto, solo hazlo
o incluso mejor ponerlo en su archivo .bashrc.
Para ver la documentación y la implementación de esta función, lea el script del guardabosques en su carpeta bin.
fuente
. ranger
) se menciona en la wikiPara aprovechar la respuesta de Gombai Sándor, sugiero hacer un pequeño ajuste al alias:
Al cambiar "$ Home / rangerdir" a "$ Home / .rangerdir", oculta el archivo creado por el alias. solo lo hace para que no moleste la carpeta de inicio. no hace ninguna diferencia funcional en cómo funciona.
fuente
Me encontré con una pregunta similar en otro lugar con una mejor respuesta en comparación con Gambai y sus otras variantes propuestas. Es mejor desde entonces.
Ya hay una función en un archivo de shell en el repositorio git de ranger:
https://github.com/ranger/ranger/blob/master/examples/bash_automatic_cd.sh
Puede poner esta función en el
~/.zshrc
archivo rc de shell de su favorito (por ejemplo ) y crear un alias y / o vincularlo a una combinación de teclas (de nuevo, ambos pueden ir en el archivo rc):y / o
Descargo de responsabilidad: lo
bindkey
anterior funciona en ZSH y debe cambiarlo en función de su shell preferidofuente
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 estaba tratando de descubrir por qué las diferentes soluciones que estaba tratando no funcionaban: /ubuntu/404141/why-cant-i-pipe-into-cd
fuente
¿puedo unirlos? pasar por los otros argumentos puede ser útil, así que pon esto en tu shellrc
fuente
Aquí hay una manera más elegante de hacerlo escribiendo un contenedor de funciones. Simplemente use el comando
ranger
, y si desea sincronizar el cambio de directorio al shell principal, salga de ranger con capitalQ
.(Los siguientes códigos son de prueba con Bash y ZSH).
Esto le permitirá sincronizar el cambio de directorio bajo demanda . Use
:q
para salir normalmente,Q
para salir y cambiar su directorio.fuente