use utf8;
-{
+{
key => {
- '+<' => ["history start"],
- '+>' => ["history end"],
- '+?' => ["list complet$sign{_}ion$sign{_}s"],
- '^@' => ["set mark"],
-
- '+#' => ["prefix comm$sign{_}en$sign{_}t"],
- '+&' => ["tilde expand"],
- '+*' => ["complet$sign{_}e all"],
- '+.' => ["insert last"],
-
- '^[' => ["meta"],
- '+\\'=> ["delete whitesp$sign{_}ace"],
- '^]' => ["find char"],
- '^+]'=> ["rev find char"],
- '^_' => ["undo"],
-
- '+~' => ["user$sign{_}name exp$sign{_}and"],
- '+!' => ["cmd expand"],
- '+@' => ["host$sign{_}name exp$sign{_}and"],
- '+$' => ["variable expand"],
- '+^' => ["history expand"],
- '+/' => ["filename expand"],
-
- '^a' => ["begin of line"],
- '^b' => ["char back$sign{_}w$sign{_}ard$sign{_}s"],
- '+b' => ["word back$sign{_}w$sign{_}ard$sign{_}s"],
- '^c' => ["cancel comm$sign{_}and"],
- '+c' => ["capital$sign{_}ise word"],
- '^d' => ["delete char"],
- '+d' => ["delete word rem$sign{_}ain$sign{_}der"],
-# '^e' => ["emacs mode"],
- '^e' => ["end of line"],
- '^f' => ["char forward"],
- '+f' => ["word forward"],
- '^g' => ["abort cmd, bell"],
- '^h' => ["back$sign{_}space"],
- '^+h'=> ["delete bound word"],
- '^i' => ["auto$sign{_}complet$sign{_}e", '(tab)'],
- '^+j'=> ["vim mode"],
- '^k' => ["delete till eol"],
- '^l' => ["clear screen"],
- '+l' => ["lowcase word"],
- '^m' => ["enter line", '(enter)'],
- '^n' => ["history next"],
- '+n' => ["match history"],
- '^o' => ["enter and next"],
- '^p' => ["history back"],
- '+p' => ["rev match history"],
- '^q' => [undef, 'Quote'],
- '^r' => ["reverse history"],
- '+r' => ["full undo", 'Revert'],
- '^s' => ["search history"],
- '^t' => ["move char forw$sign{_}ard", 'Transpose char'],
- '+t' => ["move word forw$sign{_}ard", 'Transpose word'],
- '^u' => ["delete till bol"], # unix
- '+u' => ["upcase word"],
- '^v' => ["verbatim char"],
- '^w' => ["delete word"], # unix
- '^x' => ["extend$sign{_}ed"],
- '^y' => ["yank top"],
- '+y' => ["rotate yank"],
- '^+y'=> ["yank arg"],
- '^z' => ["back$sign{_}ground"],
-
- '^x(' => ["start macro"],
- '^x)' => ["end macro"],
- '^xe' => ["run macro", 'Execute'],
- '^x^e' => ["editor"],
- '^x^r' => ["reload inputrc"],
- '^x^x' => ["swap cursor", 'eXchange'],
- '^x^v' => ["shell version"],
+ '+<' => "history start",
+ '+>' => "history end",
+ '+?' => "list complet<>ion<>s",
+ '^@' => "set mark",
+
+ '+#' => "prefix comm<>en<>t",
+ '+&' => "tilde expand",
+ '+*' => "complet<>e all",
+ '+.' => "insert last",
+
+ '^[' => "meta",
+ '+\\'=> "delete whitesp<>ace",
+ '^]' => "find char",
+ '^+]'=> "rev find char",
+ '^_' => "undo",
+
+ '+~' => "user<>name exp<>and",
+ '+!' => "cmd expand",
+ '+@' => "host<>name exp<>and",
+ '+$' => "variable expand",
+ '+^' => "history expand",
+ '+/' => "filename expand",
+
+ '^a' => "begin of line",
+ '^b' => "char back<>w<>ard<>s",
+ '+b' => "word back<>w<>ard<>s",
+ '^c' => "cancel comm<>and",
+ '+c' => "capital<>ise word",
+ '^d' => "delete char",
+ '+d' => "delete word rem<>ain<>der",
+# '^e' => "emacs mode",
+ '^e' => "end of line",
+ '^f' => "char forward",
+ '+f' => "word forward",
+ '^g' => "abort cmd, bell",
+ '^h' => "back<>space",
+ '^+h'=> "delete bound word",
+ '^i' => "auto<>complet<>e\n(tab)",
+ '^+j'=> "vim mode",
+ '^k' => "delete till eol",
+ '^l' => "clear screen",
+ '+l' => "lowcase word",
+ '^m' => "enter line\n(enter)",
+ '^n' => "history next",
+ '+n' => "match history",
+ '^o' => "enter and next",
+ '^p' => "history back",
+ '+p' => "rev match history",
+# '^q' => "\nQuote", #TODO fix partial override
+ '^r' => "reverse history",
+ '+r' => "full undo\nRevert",
+ '^s' => "search history",
+ '^t' => "move char forw<>ard\nTranspose char",
+ '+t' => "move word forw<>ard\nTranspose word",
+ '^u' => "delete till bol", # unix
+ '+u' => "upcase word",
+ '^v' => "verbat<>im char",
+ '^w' => "delete word", # unix
+ '^x' => "extend<>ed",
+ '^y' => "yank top",
+ '+y' => "rotate yank",
+ '^+y'=> "yank arg",
+ '^z' => "back<>ground",
+
+ '^x(' => "start macro",
+ '^x)' => "end macro",
+ '^xe' => "run macro\nExecute",
+ '^x^e' => "editor",
+ '^x^r' => "reload inputrc",
+ '^x^x' => "swap cursor\neXchange",
+ '^x^v' => "shell version",
+
+ # globally label escape as meta key
+ "\e" => "+",
+ "^x\e" => "+",
},
mode => {
'' => "emacs mode",
- '^x' => 'emacs ctrl-x bindings',
+ '^x' => "emacs ctrl-x bindings",
+},
+
+flag => {
+ g1 => [info => "Info command: shows/does something without altering anything."],
+ g2 => [motion => "Move the cursor."],
+ g4 => [history => "Replace contents involving kill ring, undo, or command history."],
+ g6 => [change => "Alter current text (filtering or completion)."],
+ g7 => [delete => "Remove text."],
+ g8 => [misc => "Miscellaneous commands."],
+ g9 => [mode => "Additional key functionality (click to view)."],
+
+ arg => ["key<arg>" => "Commands with a dot need a char argument afterwards."],
+ 'v21 new' => [">v2.0" => "Unavailable before readline version 2.1 (1997)."],
+ 'xbash ext' => ["bash" => "Default assignment in Bash shells, but not common readline."],
},
+def => {
+ '' => {
+ "\e" => 'g8',
+
+ '+<' => 'g4',
+ '+=' => '=+?', #TODO: v21 # emacs, not in v2.0
+ '+>' => 'g4',
+ '^?' => '=^h',
+ '+?' => 'g1',
+ '^@' => 'g8 v21', # not in v2.0
+
+ '+#' => 'g6 v21', # not in v2.0
+ '+&' => 'g6',
+ '+*' => 'g6 v21', # not in v2.0
+ '+.' => 'g4',
+ '+~' => '=+&', # emacs
+
+ '^[' => 'g8',
+ '^+['=> '=^i',
+ '+\\'=> 'g7',
+ '^]' => 'g2 arg v21', # not in v2.0
+ '^+]'=> 'g2 arg v21', # not in v2.0
+ '^_' => 'g4',
+ '+_' => '=+.',
+
+ '+~' => 'g6 xbash', # common emacs => '=+&'
+ '+!' => 'g6 xbash',
+ '+@' => 'g6 xbash',
+ '+$' => 'g6 xbash',
+ '+^' => 'g4 xbash',
+ '+/' => 'g1 xbash',
+
+ '^a' => 'g2',
+ '^b' => 'g2',
+ '+b' => 'g2',
+ '^c' => 'g8 xbash',
+ '+c' => 'g6',
+ '^d' => 'g7',
+ '+d' => 'g7 ring',
+ # '^e' => 'g9',
+ '^e' => 'g2',
+ '^f' => 'g2',
+ '+f' => 'g2',
+ '^g' => 'g8',
+ '^+g'=> '=^g',
+ '^h' => 'g7',
+ '^+h'=> 'g7 ring', #TODO
+ '^i' => 'g6',
+ '^+i'=> '=^v^i',
+ '^j' => '=^m',
+ '^+j'=> 'g9', #TODO: mode^+j
+ '^k' => 'g7 ring',
+ '^l' => 'g1',
+ '+l' => 'g6',
+ '^m' => 'g4',
+ '^+m'=> '=^+j',
+ '^n' => 'g4',
+ '+n' => 'g4',
+ '^o' => 'g4 xbash',
+ '^p' => 'g4',
+ '+p' => 'g4',
+ '^q' => '=^v',
+ '^r' => 'g4',
+ '+r' => 'g4',
+ '^+r'=> '=+r',
+ '^s' => 'g4',
+ '^t' => 'g6',
+ '+t' => 'g6',
+ '^u' => 'g7 ring',
+ '+u' => 'g6',
+ '^v' => 'g8',
+ '^w' => 'g7 ring',
+ '^x' => 'g9 arg mode^x',
+ '^y' => 'g4',
+ '+y' => 'g4 ring',
+ '^+y'=> "yank arg",
+ '^z' => 'g8 xbash',
+ },
+
+ '^x' => {
+ lead => "x̂",
+
+ "\e" => 'g8 mode',
+
+ '(' => 'g8',
+ ')' => 'g8',
+ 'e' => 'g8',
+ '^e' => 'g6 xbash linkvi',
+ '^g' => '=^g',
+ '^h' => '=^u',
+ '^r' => 'g8',
+ '^u' => '=^_',
+ '^x' => 'g2 v21', # not in v2.0
+ '^v' => 'g1 xbash',
+ '^?' => '=^x^h',
+ },
+},
}