Estou feliz em usar 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 em ~/my_project
, geralmente invoco make target1 && ./run1
, mas quando estou em ~/second_project
, geralmente preciso de make target2 && cat foobar | ./run2
.
Ou seja: diretórios diferentes, mas comandos semelhantes.
Então, normalmente, eu uso cd ~/my_project
e digito make
e, em seguida, pesquiso para trás no histórico até encontrar o que preciso. Mas se acontecer de eu ter trabalhado em second_project
, ao pesquisar o histórico eu vou encontrar alguns comandos que eu não preciso.
Então, minha pergunta: existe um plugin / setting / alguma coisa para zsh de tal forma que, ao pesquisar no histórico, os comandos invocados no diretório atual sejam exibidos primeiro?
Idealmente, todos os outros comandos do histórico de correspondência aparecerão depois deles, especificando opcionalmente um número máximo de elementos de prioridade.
Eu tentaria escrever algo assim sozinho, mas ainda não sei como escrever plugins zsh personalizados, como lidar com o histórico e assim por diante.