Hello,
I'm not quite skilled in C but I think I figured out how to add a
boolean variable 'esc_key_aborts' to set ESC key as an alternative to
the default emacs-like Ctrl-G to abort commands. I guess vi-like users
will appreciate this feature.
--- mutt-1.7.2/mutt.h Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/mutt.h Sat Feb 25 14:31:12 2017
@@ -340,6 +340,7 @@ enum
OPTEDITHDRS,
OPTENCODEFROM,
OPTENVFROM,
+ OPTESCKEYABORTS,
OPTFASTREPLY,
OPTFCCCLEAR,
OPTFOLLOWUPTO,
--- mutt-1.7.2/curs_lib.c Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/curs_lib.c Sat Feb 25 14:45:01 2017
@@ -148,7 +148,10 @@ event_t mutt_getch (void)
ret.ch = ch;
ret.op = 0;
- return (ch == ctrl ('G') ? err : ret);
+ if (option (OPTESCKEYABORTS))
+ return (ch == '\033' ? err : ret);
+ else
+ return (ch == ctrl ('G') ? err : ret);
}
int _mutt_get_field (const char *field, char *buf, size_t buflen, int
complete, int multiple, char ***files, int *numfiles)
--- mutt-1.7.2/mutt.h Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/mutt.h Sat Feb 25 14:31:12 2017
@@ -340,6 +340,7 @@ enum
OPTEDITHDRS,
OPTENCODEFROM,
OPTENVFROM,
+ OPTESCKEYABORTS,
OPTFASTREPLY,
OPTFCCCLEAR,
OPTFOLLOWUPTO,
--- mutt-1.7.2/init.h Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/init.h Sat Feb 25 14:35:34 2017
@@ -762,6 +762,14 @@ struct option_t MuttVars[] = {
** .pp
** Escape character to use for functions in the built-in editor.
*/
+ { "esc_key_aborts", DT_BOOL, R_NONE, OPTESCKEYABORTS, 0 },
+ /*
+ ** .pp
+ ** For vi-like bindings users. Set this value to ``yes'' to use
+ ** ESC key instead of the default Ctrl-G to abort commands. Take
+ ** in care some predifined emacs-like Meta prefixed bindings will
+ ** stop working.
+ */
{ "fast_reply", DT_BOOL, R_NONE, OPTFASTREPLY, 0 },
/*
** .pp