J’ai un simple alias de shell
alias fz='vim -p $(fzf -m)'
fzf est un programme terminal interactif qui, lorsqu’il se termine, envoie une liste de noms de fichiers sur stdout. Ceci est ensuite utilisé pour ouvrir les fichiers choisis avec vim.
Maintenant, le problème est que lorsque je décide d’annuler et appuyez sur Ctrl + C, le shell va de l’avant et ouvre toujours vim (comme si je venais de vim -p
). Cela a du sens.
Maintenant, une solution au problème immédiat que j’ai est de rendre mon alias plus sophistiqué pour qu’il ne lance pas vim si la sortie de fzf est vide. Sinon, je pourrais probablement faire quelque chose pour interrompre le lancement de vim si le code de sortie de fzf n’est pas zéro.
Cependant, je suis curieux de savoir comment je pourrais utiliser mon shell pour terminer ce fz
quand je ctrl + c. Est-ce simplement impossible quand je suis dans le contexte de sous-shell? Serais-je capable de le faire en définissant l’ID du groupe de processus d’une manière ou d’une autre?
J’ai essayé set -m
, mais cela n’a pas changé le comportement.