Fiquei um pouco confuso com:
% vim tmp
zsh: suspended vim tmp
% kill %1
% jobs
[1] + suspended vim tmp
% kill -SIGINT %1
% jobs
[1] + suspended vim tmp
% kill -INT %1
% jobs
[1] + suspended vim tmp
Então, renunciei a "fazer sozinho" e me pergunto por que mais tarde:
% fg
[1] - continued vim tmp
Vim: Caught deadly signal TERM
Vim: Finished.
zsh: terminated vim tmp
%
Oh!
Faz sentido, realmente, agora que penso sobre isso, que vim
deve estar em execução para que o manipulador de sinais seja solicitado a sair e fazê-lo.
Mas obviamente não é o que eu pretendia.
Existe uma maneira de "acordar e sair" em um único comando? ou seja, um alias interno para kill %N && fg %N
?
Por que a retomada em segundo plano não funciona? Se eu, em bg
vez de fg
, Vim permanece vivo até eu fg
, o que meio que quebra minha intuição acima.