Tak, jest coś niewskazanego. Skaczesz bezpośrednio z sygnału SIGINT
na SIGKILL
sygnał. Sugeruję, podobnie jak inni ludzie , rozważenie wysłania sygnałów SIGHUP
lub SIGTERM
przed 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 SIGTERM
jako 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