+use utf8;
+
+'' => {
+ desc => "normal mode",
+
+ '+\\'=> ["delete whitesp$sign{_}ace", 'mo'],
+ '+_' => '+.',
+ '+>' => ["history end", 'co'],
+ '+<' => ["history start", 'co'],
+ '+.' => ["insert last", 'co'],
+ '+#' => ["prefix comm$sign{_}en$sign{_}t", 'mi'],
+ '+*' => ["complet$sign{_}e all", 'mi'],
+ '^]' => ["find char", 'pm arg'],
+ '^+]'=> ["rev find char", 'pm arg'],
+ '^?' => '^h',
+ '+?' => ["list complet$sign{_}ion$sign{_}s", 'ci'],
+ '+=' => '+?', # emacs
+ '^@' => ["set mark"],
+ '+&' => ["tilde expand", 'mi'],
+ '+~' => '+&', # emacs
+ '^_' => ["undo", 'co'],
+
+ '^a' => ["begin of line", 'pm'],
+ '^b' => ["char back$sign{_}w$sign{_}ard$sign{_}s", 'pm'],
+ '+b' => ["word back$sign{_}w$sign{_}ard$sign{_}s", 'pm'],
+ '+c' => ["capital$sign{_}ise word", 'mi'],
+ '^d' => ["delete char", 'mo'],
+ '+d' => ["delete word rem$sign{_}ain$sign{_}der", 'mo'],
+# '^e' => ["emacs mode", 'me'],
+ '^e' => ["end of line", 'pm'],
+ '^f' => ["char forward", 'pm'],
+ '+f' => ["word forward", 'pm'],
+ '^g' => ["abort cmd, bell"],
+ '^h' => ["back$sign{_}space", 'mo'],
+ '^i' => ["complete", '', '(tab)'],
+ '^j' => '^m',
+ '^+j'=> ["vim mode", 'me'],
+ '^k' => ["delete till eol", 'mo'],
+ '^l' => ["clear screen", 'ci'],
+ '+l' => ["lowcase word", 'mi'],
+ '^m' => ["enter line", '', '(enter)'],
+ '^n' => ["history next", 'co'],
+ '+n' => ["match history", 'co'],
+ '^p' => ["history back", 'co'],
+ '+p' => ["rev match history", 'co'],
+ '^q' => '^v', # Quote
+ '^r' => ["reverse history", 'co'],
+ '+r' => ["full undo", 'co', 'Revert'],
+ '^s' => ["search history", 'co'],
+ '^t' => ["move char forw$sign{_}ard", 'mi', 'Transpose char'],
+ '+t' => ["move word forw$sign{_}ard", 'mi', 'Transpose word'],
+ '^u' => ["delete till bol", 'mo'], # unix
+ '+u' => ["upcase word", 'mi'],
+ '^v' => ["verbatim char"],
+ '^w' => ["delete word", 'mo'], # unix
+# '^xBS' => ["delete till bol", 'mo'],
+ '^x' => ["extend$sign{_}ed", 'me arg'],
+ '^y' => ["yank top"],
+ '+y' => ["rotate yank"],
+ '^+y'=> ["yank arg"],
+},
+