Estou procurando o equivalente zsh do comando bash history -c
, em outras palavras, limpe o histórico da sessão atual. Em zsh history -c
retorna 1 com uma mensagem de erro history: bad option: -c
.
Só para esclarecer, não estou procurando uma maneira de excluir o conteúdo de $HISTFILE
, só quero um comando para redefinir o histórico para o mesmo estado em que abri o terminal. Excluir o conteúdo de $HISTFILE
faz o oposto do que eu quero: ele exclui o histórico que quero preservar e preserva o histórico que quero excluir (já que o histórico da sessão atual seria anexado a ele, independentemente de seu conteúdo ter sido apagado anteriormente).
Há uma solução alternativa que uso por enquanto, mas obviamente não é o ideal: na sessão atual, defino HISTFILE=/dev/null
e apenas fecho e reabro o terminal. Isso faz com que o histórico da sessão fechada não seja anexado ao $HISTFILE
. No entanto, eu realmente gostaria history -c
de algo como bash, que é muito mais elegante do que ter que fechar e reiniciar o terminal.
O equivalente a
history -c
em zsh éhistory -p
Para obter um histórico vazio, defina temporariamente
HISTSIZE
como zero.Se você quiser apagar o novo histórico desta instância do shell, mas manter o histórico antigo que foi carregado inicialmente, esvazie o histórico como acima e recarregue o histórico salvo
fc -R
posteriormente.Se você não quiser que a
erase_history
chamada seja gravada no histórico, você pode filtrá-la nozshaddhistory
gancho .A exclusão de um elemento histórico específico ( no bash) é outra questão. Acho que não tem outro jeito a não ser:
history -d NUM
fc -AI
para anexar ao arquivo de histórico oufc -WI
para substituir o arquivo de histórico, dependendo de suas preferências de compartilhamento de histórico.$HISTFILE
).fc -R
.Tente executar o seguinte comando:
Ele matará o terminal atual sem salvar o histórico da sessão.
O seguinte também pode ser útil:
Isso removerá o arquivo de histórico e matará o terminal atual sem salvar o histórico da sessão.
Semelhante à resposta do @Gimi, mas um pouco mais gentil, em vez de remover o arquivo, apago todo o seu conteúdo.
ou