J'utilise avec bonheur zsh
depuis un certain temps maintenant, et je suis assez satisfait de mes paramètres d'historique, qui sont:
# 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
Mais il arrive souvent que je doive utiliser des commandes spécifiques dans certains répertoires spécifiques. Par exemple, quand je suis ~/my_project
dedans make target1 && ./run1
, j'invoque habituellement , mais quand je suis dedans , ~/second_project
j'ai généralement besoin make target2 && cat foobar | ./run2
.
C'est-à-dire: différents répertoires, mais des commandes similaires.
Donc, d'habitude, je cd ~/my_project
tape make
, puis je fais une recherche en arrière dans l'histoire jusqu'à ce que je trouve ce dont j'ai besoin. Mais s'il arrive que je travaille second_project
, lors de la recherche dans l'historique, je trouverai des commandes dont je n'ai pas besoin.
Donc, ma question: existe-t-il un plugin / paramètre / quelque chose pour zsh de telle sorte que, lors de la recherche dans l'historique, les commandes invoquées dans le répertoire courant s'affichent en premier?
Idéalement, toutes les autres commandes d'historique correspondant apparaîtront après celles-ci, en spécifiant éventuellement un nombre maximal d'éléments prioritaires.
J'essaierais d'écrire quelque chose comme ça par moi-même, mais je ne sais toujours pas comment écrire des plugins zsh personnalisés, comment gérer l'historique, etc.