¿Hay alguna manera de hacer que la característica de historia de un shell moderno se pueda definir en un camino?
Mis contextos de trabajo se dividen como rutas en el sistema de archivos, y el patrón de actividad de shell, como los comandos emitidos repetidamente, tiende a ser distinto para cada 'proyecto'. Sería bueno si pudiera abarcar la función de historial a los comandos emitidos desde la ruta actual (o subruta).
shell
directory
command-history
cd-command
sohocoke
fuente
fuente
No es una buena respuesta, sino una alternativa si la está utilizando
bash
como shell: podría crear algunos alias en su.bashrc
.Por ejemplo:
Entonces, si escribe
a
:history -w
)history -c
)/home/user/.a_history
y leerá (history -r
)fuente
HISTFILE
. No hay ninguna razón para exportarlo a otros programas, y ~ / .bashrc se ejecuta para cada proceso de bash interactivo, por lo que su código para configurarlo se ejecutará en cada bash de todos modos. En general, si una variable definida por el shell no se exporta por defecto, rara vez debería exportarla.Si está utilizando ZSH, eche un vistazo a este pequeño complemento que escribí recientemente para manejar esto:
https://github.com/ericfreese/zsh-cwd-history
Almacena un archivo separado
HISTFILE
para cada directorio en el que ha ejecutado comandos, y agrega unchpwd
enlace para cambiar entreHISTFILE
s cuando cambia de directorio.También proporciona un widget zle que puede vincular con una pulsación de tecla que alternará
HISTFILE
entre su "global" originalHISTFILE
y elHISTFILE
de su directorio de trabajo actual.Originalmente se basó en el complemento por historial de directorios de Jim Hester , pero desde entonces se ha reescrito desde cero para solucionar muchos de los problemas con ese complemento.
fuente
Escribí un complemento ZSH que hace lo que quieres: https://github.com/tymm/zsh-directory-history
A diferencia de otras soluciones, mi complemento vuelve a la historia global automáticamente. Eso significa que no tiene que cambiar entre el historial del directorio y el historial global.
Sin embargo, las otras soluciones son un poco más livianas, supongo.
fuente