Tak, jest coś niewskazanego. Skaczesz bezpośrednio z sygnału SIGINTna SIGKILLsygnał. Sugeruję, podobnie jak inni ludzie , rozważenie wysłania sygnałów SIGHUPlub SIGTERMprzed zastosowaniem opcji jądrowej. Następnie jest niewskazana, aby mieć to jako powiązanie klucza, co oczywiście oznacza, że będzie działać tylko wtedy, gdy ZLE jest aktywny, a powłoka interaktywnie monituje o podanie danych wejściowych, a nie podczas wykonywania poleceń. (Do tego pan będzie trzeba skonfigurować terminal, a nie powłoki, i trzeba mieć dyscyplinę końcową linię, która implementuje podając SIGTERMjako przedłużenie POSIX określonego zachowania).
W tej notatce nikt jeszcze nie zauważył, że pytasz o skróty klawiszowe edytora linii powłoki, a nie terminal. Aby odpowiedzieć na pierwszą część pytania, wówczas:
Skonfigurowałeś funkcję powłoki, aby wysłać sygnał do „bieżącego” zadania.
function terminate-current-job() { kill -s TERM %+ ; }
Następnie konstruujesz widget zdefiniowany przez użytkownika ZLE, który wywołuje tę funkcję powłoki.
zle -N terminate-current-job terminate-current-job
Następnie w końcu przypisujesz ten widget do wybranego klucza.
bindkey "^/" terminate-current-job