%
refere-se a um 'jobid' que é usado como parte dos recursos "controle de processo e controle de processo" do zsh. Para citar o guia do usuário:
'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.
Exemplo:
$> man zshall &
[1] + 31392 suspended (tty output) man zshall
$> jobs
[1] + suspended (tty output) man zshall
$> %
<manpage-opens-for-zshall>
Leia mais sobre isso aqui: link
Para responder a sua pergunta real : Se o seu zsh não colocar um aviso lá ("fg: no current job" ou algo parecido) então há um WAS / WAS. Exemplo:
$> sleep 60 &
$> % echo foo
[1] + 411 running sleep 60
fg: job not found: echo
O %
acabou de recuperar o processo em segundo plano e o executa. Após 60 segundos, obteve o próximo 'jobid' que não foi encontrado.
Assim: O comportamento que você experimentou é um pouco estranho. Sem o seu zshrc completo, é difícil dizer exatamente o que está acontecendo. Parece que você conseguiu dizer ao seu zsh que o caractere '%' está iniciando um comentário. Gostaria de verificar o parâmetro histchars
para o seu terceiro valor:
$> echo $histchars