Ja, da ist etwas nicht ratsam. Sie springen direkt vom SIGINT
zum SIGKILL
Signal. Ich schlage vor, wie andere Leute auch , das Senden der Signale SIGHUP
oder zu SIGTERM
prüfen, bevor sie die nukleare Option anwenden. Dann ist es nicht ratsam, dies als Tastenzuordnung zu verwenden, was natürlich bedeutet, dass es nur funktioniert, wenn ZLE aktiv ist und die Shell Sie interaktiv zur Eingabe auffordert, nicht, wenn Befehle ausgeführt werden. (Dazu müssten Sie das Terminal und nicht die Shell konfigurieren und über eine Terminalleitungsdisziplin verfügen, die das Senden SIGTERM
des von POSIX angegebenen Verhaltens als Erweiterung implementiert .)
In diesem Sinne scheint noch niemandem aufgefallen zu sein, dass Sie nach den Tastenkombinationen des Shell-Line-Editors fragen, nicht nach dem Terminal. Um den ersten Teil Ihrer Frage zu beantworten, dann:
Sie richten eine Shell-Funktion ein, um das Signal an den "aktuellen" Job zu senden.
function terminate-current-job() { kill -s TERM %+ ; }
Anschließend erstellen Sie ein benutzerdefiniertes ZLE-Widget, das diese Shell-Funktion aufruft.
zle -N terminate-current-job terminate-current-job
Anschließend binden Sie das Widget an einen Schlüssel Ihrer Wahl.
bindkey "^/" terminate-current-job