Estou usando felizmente zsh
há algum tempo e estou bastante satisfeito com minhas configurações de histórico, que são:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Mas acontece frequentemente que eu preciso usar comandos específicos dentro de alguns diretórios específicos. Por exemplo, quando estou dentro ~/my_project
, costumo invocar make target1 && ./run1
, mas quando estou ~/second_project
, geralmente preciso make target2 && cat foobar | ./run2
.
Ou seja: diretórios diferentes, mas comandos semelhantes.
Então, eu normalmente cd ~/my_project
digito make
e, em seguida, procuro na história até encontrar o que preciso. Mas, se eu trabalhei second_project
, ao pesquisar o histórico, encontrarei alguns comandos que não preciso.
Então, minha pergunta: existe um plugin / setting / algo para o zsh que, ao pesquisar no histórico, os comandos invocados no diretório atual sejam exibidos primeiro?
Idealmente, todos os outros comandos do histórico correspondente aparecerão depois deles, especificando opcionalmente um número máximo de elementos prioritários.
Eu tentaria escrever algo assim sozinho, mas ainda não sei como escrever plugins zsh personalizados, como lidar com a história e assim por diante.