popd para gestión de directorios basada en cdr en zsh

popd para gestión de directorios basada en cdr en zsh

Hace poco comencé a usarcdrpara zshrecordar directorios recientes. Solía ​​​​usar pushdy cosas por el estilo. Una cosa que extraño es popd, que básicamente significa "Ya terminé de usar este directorio, colóqueme donde solía estar y elimine esta entrada en la pila".

¿Se puede hacer una semántica similar con cdr?

Editar: cambie "historial" a "apilar".

Respuesta1

puedes escribir

cdr -p $PWD

y cdrla voluntadciruela pasael directorio en el que se encuentra de su lista. Para podar otro directorio, simplemente reemplácelo $PWDcon el nombre de ruta absoluta del directorio que desea eliminar. O si desea eliminar un conjunto completo de directorios, también puede usar patrones globales en el argumento. Y antes de cdr -prealizar cualquier cambio, le mostrará cuáles serán los resultados de su acción y le pedirá que confirme, para que no tenga que preocuparse por "todo el asunto accidentalmente". Verhttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Options-2para más información.


Para volver al directorio anterior en el que estamos, haga

cd -

Puedes combinar ambos en una función:

cdpop() {
  local dir=$PWD

  # `cdr` without arguments does the same `cdr 1`: Go back to the previous 
  # dir.
  cdr

  # `-P` does the same as `-p`, but is silent and doesn't ask for 
  # confirmation.
  cdr -P $dir
}

Por cierto: puedes configurarlo cdrpara que también ejecute cdcomandos. Para habilitar esto, coloque lo siguiente en su ~/.zshrcarchivo:

zstyle ':chpwd:*' recent-dirs-default true

Luego, se pasará a cualquier argumento que pase cdry que no sea específico . Entonces no necesitas pensar si usar o ; siempre puedes usarlo para todo. Vercdrcdcdcdrcdrhttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Configuration-2para más información.


Una cosa que extraño es popd, que básicamente significa "Ya terminé de usar este directorio, colóqueme donde solía estar y elimine esta entrada en el historial".

Pequeña corrección: popdno elimina un directorio dehistoria, lo elimina delpila de directorio.

información relacionada