I use <ESC>1 for help: bind index \e1 help Pressing an undefined key in message index ends up in an infinite beeping loop.
The reason is: km_error_key() wants to print a helpful message: Key is not bound. Press '%s' for help. km_expand_key() is called and fills buf with "<ESC>1". This is then pushed into the input using mutt_unget_string(). This likely contains undefined keys and will endlessly loop back into km_error_key(). I believe this got introduced by commit 6517:a07e8215a0ef (Create a separate macro/push/exec event buffer). This patch fixes the problem for me (I'm very new to the mutt code, so I'm not sure if this is correct): --- a/keymap.c 2016-05-18 18:58:20.863536907 +0200 +++ b/keymap.c 2016-05-18 18:58:24.783661152 +0200 @@ -844,7 +844,7 @@ } /* make sure the key is really the help key in this menu */ - mutt_unget_string (buf); + tokenize_push_macro_string (buf); if (km_dokey (menu) != OP_HELP) { mutt_error _("Key is not bound."); -- Jiri Bohac <jbo...@suse.cz> SUSE Labs, SUSE CZ