Entonces, ocasionalmente estaré trabajando en zsh, en un shell interactivo, y cambiaré al Finder (o Path Finder) y mientras esté allí, arrojaré la carpeta, que es el directorio de trabajo actual en la Terminal, a la Papelera. Luego volveré al shell para buscar otra cosa y encontraré que el shell todavía está en la carpeta ahora eliminada.
¿Hay alguna manera en que zsh pueda darse cuenta de que, si el padre de la carpeta ha cambiado para convertirse en ".Trash", debería, por ejemplo, cambiar su directorio (en mi caso, idealmente a la carpeta del escritorio)? ¿Pero que solo debería hacer esto en un shell interactivo, a diferencia del medio de un script de shell u otra aplicación?
Puedo buscar en Google e implementar, pero no he podido encontrar los términos correctos, y soy más lo que yo llamo un empalmador o un kludger que cualquier tipo de programador real. Esperando el pensamiento de alguien en este sentido antes.
No, no hay forma de que Zsh lo note automáticamente mientras no lo estés usando activamente.
Pero que importa? Simplemente puede escribir cd
para volver a su carpeta de inicio.
Muy bien, aquí hay una solución real que he probado y funciona. ¡Gracias a @nohillside por los ánimos!
autohome() {
# If the present working dir doesn't exist...
if [[ ! -d $PWD ]]; then
# Go back to ~
cd $HOME
# If the line editor is active, redraw the prompt.
zle && zle .reset-prompt
fi
}
# This will call the function above as soon as you start typing.
autoload -Uz add-zle-hook-widget
add-zle-hook-widget line-pre-redraw autohome
sin ladera
PROMPT_COMMAND
oPS1
(o lo que sea quezsh
tenga para esto) y mostrar un mensaje en el aviso.Marlon Richert
Marlon Richert