Uso felicemente zsh
da un po 'di tempo e sono abbastanza soddisfatto delle mie impostazioni di cronologia, che sono:
# 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
Ma capita spesso di dover usare comandi specifici all'interno di alcune directory specifiche. Ad esempio, quando sono dentro di ~/my_project
solito invoco make target1 && ./run1
, ma quando sono dentro di ~/second_project
solito ho bisogno make target2 && cat foobar | ./run2
.
Cioè: directory diverse, ma comandi simili.
Quindi di solito cd ~/my_project
scrivo make
e poi scrivo all'indietro nella storia fino a quando non trovo ciò di cui ho bisogno. Ma se succede che ho lavorato second_project
, durante la ricerca della cronologia troverò alcuni comandi che non mi servono.
Quindi, la mia domanda: esiste un plugin / setting / qualcosa per zsh tale che, quando si cerca nella cronologia, i comandi richiamati nella directory corrente vengono visualizzati per primi?
Idealmente, ogni altro comando della cronologia corrispondente verrà visualizzato dopo quelli, specificando facoltativamente un numero massimo di elementi prioritari.
Proverei a scrivere qualcosa del genere da solo, ma non so ancora come scrivere plugin zsh personalizzati, come gestire la cronologia e così via.