/ / Ako môžem zsh vylúčiť niektoré príkazy z histórie? - zsh, zshrc

Ako môžem zsh vylúčiť niektoré príkazy z histórie? - zsh, zshrc

Ako povedzme tie, ktoré obsahujú slovo "výroba"?

odpovede:

4 pre odpoveď č. 1
function zshaddhistory() {
emulate -L zsh
if [[ $1 != *"production"* ]] ; then
print -sr -- "${1%%$"n"}"
fc -p
else
return 1
fi
}

Dajte hore do súboru, ktorý bude pochádzať pri spustení interaktívneho shell (na .zshrc alebo do súboru, ktorý pochádza z .zshrc ako ja).

Alternatívny formulár (implicitné pridanie do histórie):

function zshaddhistory() {
emulate -L zsh
if [[ $1 = *"production"* ]] ; then
return 1
fi
}

, Poznámka:

print -sr -- "${1%%$"n"}"

explicitne pridáva položku do histórie. Ale tá istá vec implicitne zsh ak zshaddhistory vráti sa nulovým kódom výstupu, takže bez fc -p a s setopt nohistignoredups nohistignorealldups (čo je predvolený stav), uvidíte nepotrebné duplikáty v histórii.

emulate -L zsh je tu, aby sa ubezpečil, že nastavenia emulácie nezasahujú a nezmení interpretáciu funkcie tela. Tento riadok som dal na začiatok každej funkcie, ktorú definujem v zsh konfigurácii.