curto: o recurso se aplica somente a edição caracteres; discard
não é um caractere de edição.
por mais tempo: use a fonte. Há uma tabela em lib/readline/bind.c
que tem esta entrada:
{ "bind-tty-special-chars", &_rl_bind_stty_chars, 0 },
que atribui o nome da opção ao endereço de uma variável. A variável é testada em alguns lugares da libreadline, indo em última instância para essa função:
/* Rebind all of the tty special chars that readline worries about back to self-insert. Call this before saving the current terminal special chars with save_tty_chars(). This only works on POSIX termios or termio systems. */ void rl_tty_unset_default_bindings (kmap) Keymap kmap; { /* Don't bother before we've saved the tty special chars at least once. */ if (RL_ISSTATE(RL_STATE_TTYCSAVED) == 0) return; RESET_SPECIAL (_rl_tty_chars.t_erase); RESET_SPECIAL (_rl_tty_chars.t_kill); # if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER) RESET_SPECIAL (_rl_tty_chars.t_lnext); # endif /* VLNEXT && TERMIOS_TTY_DRIVER */ # if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER) RESET_SPECIAL (_rl_tty_chars.t_werase); # endif /* VWERASE && TERMIOS_TTY_DRIVER */ }
Você pode ver os nomes stty
usados nas estruturas: erase
, kill
e lnext
. Não há discard
. bash
não define (ou redefine).