Você pode usar 'precmd' em zsh para isso.
Provavelmente, você pode querer configurar backups no Vim, porque fazer esse tipo de coisa no precmd não parece certo para mim.
Eu gostaria de configurar o Bash para executar um comando em particular antes de executar cada linha de comando que eu digito no prompt. Especificamente, eu gostaria de dizer ao Vim (que está rodando em outro terminal) para escrever todos os buffers abertos, porque no meu fluxo de trabalho, se alguma coisa não é salva quando eu deixo o Vim, é um erro.
Existe uma opção para isso no Bash? Se não, existe uma opção no Zsh?
(Existe uma solução baseada na readline que de certa forma se encaixa nesse problema em outra pergunta, mas parece um pouco hacky Vai levar isso como último recurso.)
Eu fiz coisas semelhantes usando uma pseudo-sub-shell usando o builtin como segue:
#!/bin/sh
#public domain fake shell template
while read -p "$PS1" CMD; do
case "$CMD" in
*bad_case*|*another_bad_case*)echo bad command: user info logged etc..;;
*)<your_command_here>
eval "$CMD";;
esac
done