/ / Como posso ter zsh excluir certos comandos do histórico? - zsh, zshrc

Como posso ter zsh excluir determinados comandos do histórico? - zsh, zshrc

Como, digamos, aqueles que incluem a palavra "produção"?

Respostas:

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

Coloque o acima em um arquivo que será originado quando o shell interativo for iniciado (para .zshrc ou para um arquivo proveniente de .zshrc como eu faço).

Formulário alternativo (adição implícita ao histórico):

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

. Nota:

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

adiciona explicitamente item ao histórico. Mas a mesma coisa faz implicitamente zsh se zshaddhistory retorna com código de saída zero, então sem fc -p e com setopt nohistignoredups nohistignorealldups (que é o estado padrão) você verá duplicatas desnecessárias no histórico.

emulate -L zsh está aqui para garantir que as configurações de emulação não interfiram e alterem a interpretação do corpo da função. Eu coloquei esta linha no início de cada função que eu defino na configuração zsh.