Existe uma maneira de fazer com que o recurso de história de um shell moderno tenha um escopo definido para um caminho?
Meus contextos de trabalho são divididos como caminhos no sistema de arquivos, e o padrão de atividade do shell, como comandos emitidos repetidamente, tende a ser distinto para cada 'projeto'. Seria bom se eu pudesse escopo o recurso de histórico para comandos emitidos a partir do caminho atual (ou subcaminho).
shell
directory
command-history
cd-command
sohocoke
fonte
fonte
Não é uma resposta legal, mas uma alternativa se você estiver usando
bash
como seu shell: você pode criar um alias no seu.bashrc
.Por exemplo:
Então, se você digitar
a
:history -w
)history -c
)/home/user/.a_history
e lido (history -r
)fonte
HISTFILE
. Não há razão para exportá-lo para outros programas, e o ~ / .bashrc é executado para todos os processos do bash interativo; portanto, seu código para defini-lo será executado em todo bash de qualquer maneira. Em geral, se uma variável definida pelo shell não é exportada por padrão, você raramente deve exportá-la.Se você estiver usando o ZSH, dê uma olhada neste pequeno plug-in que escrevi recentemente para lidar com isso:
https://github.com/ericfreese/zsh-cwd-history
Ele armazena um separado
HISTFILE
para cada diretório em que você executou comandos e adiciona umchpwd
gancho para alternar entreHISTFILE
s quando você altera os diretórios.Ele também fornece um widget zle que você pode vincular a um pressionamento de tecla que alterna
HISTFILE
entre o "global" originalHISTFILE
e oHISTFILE
diretório de trabalho atual.Ele foi originalmente baseado no plug - in por histórico de diretório de Jim Hester , mas foi reescrito desde o início para corrigir muitos dos problemas desse plug-in.
fonte
Eu escrevi um plugin ZSH que faz o que você deseja: https://github.com/tymm/zsh-directory-history
Em contraste com outras soluções, meu plug-in volta automaticamente ao histórico global. Isso significa que você não precisa alternar entre o histórico do diretório e o histórico global.
No entanto, as outras soluções são um pouco mais leves, eu acho.
fonte