'-' => ["prev line", "pm"],
'=' => ["auto form$sign{_}at", "co argm undo"],
'?' => ["find rev.", "pm arg modec"],
- ';' => ["repeat t/T/f/F", "pm"],
+ ';' => ["repeat t/f/T/F", "pm"],
':' => ["ex cmd line", "co modec"],
"'" => ["goto mark bol", "pm arg"],
'"' => ["use register", "co arg"],
'\\' => ["not used", "me arg"],
'^\\' => ["to mode/$sign{_}ext$sign{_}ens$sign{_}ion$sign{_}s", "mo arg"],
',' => ["reverse t/T/f/F", "pm"],
- '<' => ["un$sign{_}indent", "co argm undo"],
+ '<' => ["un$sign{_}ind$sign{_}ent", "co argm undo"],
'.' => ["repeat cmd", "co undo"],
- '>' => ["ident", "co argm undo"],
+ '>' => ["ind$sign{_}ent", "co argm undo"],
'/' => ["find", "pm arg modec"],
'[' => ["move back$sign{_}ward$sign{_}s", "me arg mode["],
'{' => ["begin parag.", "pm"],
'b' => ["prev word", "pm", "Back"],
'B' => ['prev <span style="font-variant:small-caps">word</span>', "pm"],
'^b'=> ["page up", "pm"],
- 'c' => ["change", "mi argm undo modei"],
+ 'c' => ["chan$sign{_}ge", "mi argm undo modei"],
'C' => ["change to eol", "mi undo modei"],
'^c'=> ["abort", "co"],
'd' => ["delete", "co argm undo"],
'G' => ["eof/$sign{_}goto ln", "pm"],
'^g'=> [":file (info)", "ci"],
'h' => [$sign{left}, "pm"],
- 'H' => ["screen top", "pm"],
+ 'H' => ["screen top", "pm", 'Home row'],
'^h'=> "h",
'i' => ["insert mode", "mi undo modei"],
'I' => ["insert at bol", "mi undo modei"],
- '^i'=> ["jump to newer", "pm"],
+ '^i'=> ["jump to newer", "pm vim", 'Increase position'],
'j' => [$sign{down}, "pm"],
'J' => ["join lines", "co undo"],
'^j'=> "j",
'^n'=> "j",
'o' => ["open below", "mi undo modei"],
'O' => ["open above", "mi undo modei"],
- '^o'=> ["jump to older", "pm"],
+ '^o'=> ["jump to older", "pm vim"],
'p' => ["paste after", "co undo"],
'P' => ["paste before", "co undo"],
'^p'=> "k",
'q' => ["record macro", "mo arg", "Queue seQuence"],
'Q' => ["ex mode", "mo"],
- '^q'=> ["(xon)", "ci"], # or ^v
+ '^q'=> ["(xon)", "ci", 'Qome back'], # or ^v
'r' => ["replace char", "co arg undo"],
'R' => ["replace mode", "mi undo modei"],
'^r'=> ["redo", "co undo"],
's' => ["subst char", "mi undo modei"],
'S' => ["subst line", "mi undo modei"],
- '^s'=> ["(xoff)", "ci"],
+ '^s'=> ["(xoff)", "ci", 'Stop'],
't' => ["till char", "pm arg"],
'T' => ["back till char", "pm"],
'^t'=> ["previous tag", "po"],
'W' => ['next <span style="font-variant:small-caps">word</span>', "pm"],
'^w'=> ["window cmds", "me arg mode^w"],
'x' => ["delete char", "co undo"],
- 'X' => ["back$sign{_}space", "co undo"],
+ 'X' => ["back$sign{_}space", "co undo"],
'^x'=> ["subs$sign{_}tract", "co undo"],
'y' => ["yank", "co argm"],
'Y' => ["yank line", "co"],
- '^y'=> ["window up", "po"],
+ '^y'=> ["window up", "po", 'Yield'],
'z' => ["extra cmds", "me arg modez"],
'Z' => ["quit", "me arg modeZ"],
- '^z'=> [":sus$sign{_}pend", "ci"],
+ '^z'=> [":sus$sign{_}pend", "ci", 'zzz (as in sleep)'],
}, # normal mode
g => {
'Q' => ["ex mode manual :", "mo vim"],
'r' => ["replace char vir.", "co arg"],
'R' => ["replace mode v$sign{_}ir$sign{_}t$sign{_}ual", "mi undo modei"],
- 's' => ["sleep", "ci", "Go to Sleep"],
+ 's' => ["sleep", "ci vim", "Go to Sleep"],
't' => ["next tab", "po vim7", "Goto Tab"],
'T' => ["previous tab", "po vim7"],
'u' => ["lower$sign{_}case", "co argm vim"], # XXX undo?
'U' => ["upper$sign{_}case", "co undo argm vim"],
- 'v' => ["previous visual mode", "mv modev", "precedinG Visual"],
+ 'v' => ["previous highl$sign{_}ight", 'mv modev', 'precedinG Visual'],
'V' => ["avoid reselect$sign{_}ion", "co"],
'w' => ["format remain cursor", "co argm vim7"],
'x' => ["Netrw$sign{_}BrowseX", "co vim7"],
}, # mode g
Z => {
- desc => "additional commands (z)",
+ desc => "quit commands",
lead => "Z",
'^['=> ["esc", "mo mode"],
}, # mode Z
z => {
- desc => "quit commands",
+ desc => "additional commands (z)",
lead => "z",
'^' => ["page above", "po"],
'!' => ["external filter", "co"],
':' => ["cmd on range", "mo modec"],
'<' => ["un$sign{_}indent", "co"],
- '=' => ["equalprg filter", "co"],
+ '=' => ["equal$sign{_}prg filt$sign{_}er", "co"],
'>' => ["indent", "co"],
'~' => ["toggle case", "co vim"],
'^['=> ["esc", "mo mode"],
'^]'=> ["jump to tag", "po"],
+ '^\\'=>'^\\',
- 'a' => ["extend area", "me arg"], # XXX mode
+ 'a' => ["extend area", "me modeva arg vim"],
'A' => ["append to block", "mi modei"], # block
'c' => ["replace area", "mi modei vim"],
'C' => ["replace lines", "mi modei vim"],
'g' => ["extra cmds", "me arg modevg"],
'^g'=> ["select mode", "mv"],
'^h'=> ["delete area", "co"], # select mode only
- 'i' => ["extend area", "me arg"],
+ 'i' => ["extend inner a$sign{_}r$sign{_}ea", "me modeva arg vim"],
'I' => ["insert to block", "mi modei"], # block
'J' => ["join lines", "co"],
'K' => ["keyword$sign{_}prg", "co"],
'?' => ["rot13 encode", "co vim"],
'J' => ["join leave spacing", "co vim"],
'q' => ["format", "co vim"],
- 'v' => ["previous highl$sign{_}ight", "co"],
+ 'v' => 'gv',
'w' => ["format remain cursor", "co vim7"],
}, # mode v g
+va => {
+ desc => 'text object selection (v a/i)',
+
+ '(' => 'vab',
+ ')' => 'vab',
+ '`' => "va'",
+ "'" => ["quoted string", 'pm vim7'],
+ '"' => "va'",
+ '<' => ["<> block", 'pm vim'],
+ '>' => 'va<',
+ '[' => ["[] block", 'pm vim'],
+ '{' => 'vaB',
+ '^['=> ["esc", 'mv modev'],
+ ']' => 'va[',
+ '}' => 'vaB',
+
+ 'b' => ["() block", 'pm vim'],
+ 'B' => ["{} Block", 'pm vim'],
+ 'p' => ["para$sign{_}graph", 'pm vim'],
+ 's' => ["senten$sign{_}ce", 'pm vim'],
+ 't' => ["xml tag block", 'pm vim7'],
+ 'w' => ["word", 'pm vim'],
+ 'W' => ['<span style="font-variant:small-caps">word</span>', 'pm vim'],
+}, # mode v a
+
#c => {
# desc => "command-line mode",
#
# '^_' => 'i^_',
# '^^' => 'i^^',
-## '^\\'=> ["cmd", "me arg"],
+# '^\\'=>'^\\',
# '^a' => ["complete", ""], #todo
# '^b' => ["bol", "po"],
# '^c' => 'i^c',
'^^' => ["toggle :lmap usag$sign{_}e", "co vim"],
'^[' => ["esc", "mo mode"],
'^]' => ["abbrev$sign{_}iate", "co vim"],
- '^_' => ["change lang$sign{_}uage", "co vim"],
- '^\\'=> ["switch mode", "mo arg"],
+ '^_' => ["toggle lang$sign{_}uage", "co vim"],
+ '^\\'=>'^\\',
'^a' => ["insert prev$sign{_}ious", "co vim"],
- '^b' => ["former i^_", "co"],
+ '^b' => ["former i^_", "no vim"],
'^c' => ["abort, no abbr", "mo mode"],
'^d' => ["un$sign{_}indent", "co"],
'^e' => ["ins char below", "co vim"],
'^f' => ["cinkeys: re-indent", "co"],
- '^g' => ["start column", "pm arg"], #todo
+ '^g' => ["extra cmds", "me modei^g arg"],
'^h' => ["back$sign{_}space", "co"],
'^i' => ["tab", "co"],
'^j' => ["enter", "co"],
'^z' => [":sus$sign{_}pend in <em>im</em>", "ci vim"], # insertmode only
}, # modei
+'i^g' => {
+ desc => "extended insert commands (i ctrl-g)",
+ lead => $ascii ? "'g" : "ĝ",
+
+ 'k' => ["$sign{up} start col$sign{_}umn", 'pm'],
+ 'j' => ["$sign{down} start col$sign{_}umn", 'pm'],
+ 'u' => ["break undo seq$sign{_}uence", 'co'],
+ # other keys (even esc) are not recognized
+}, # mode i ^g
+
'i^x' => {
desc => "insert completion commands (i ctrl-x)",
lead => $ascii ? "'x" : "x̂",
- '^[' => ["esc", "mo mode"],
+ '^[' => ["esc", "mo mode"], # yes, it really leaves insert mode
'^]' => ["complet$sign{_}e tags", "co"],
'^d' => ["complet$sign{_}e def$sign{_}ines", "co"],
'^e' => ["window up", "po"],