X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/41c3aa4f3f9017f7d5933ec3e3535124a2b4e6f6..a84b651b70f484379de8ac84a2abac91e59c1a6e:/vim.inc.pl diff --git a/vim.inc.pl b/vim.inc.pl new file mode 100644 index 0000000..98abbc6 --- /dev/null +++ b/vim.inc.pl @@ -0,0 +1,559 @@ +use utf8; + +'' => { + desc => "normal mode", + + '~' => ["case toggle", "co undo"], + '!' => ["filt$sign{_}er lines", "co argm undo modec"], + '@' => ["play macro", "co arg undo"], + '#' => ["rev. find word", "pm vim"], + '$' => ["eol", "pm"], + '%' => ["goto match", "pm"], + '^' => ['"soft" bol', "pm"], + '&' => [":s rep$sign{_}eat", "co undo"], + '*' => ["find word", "pm vim"], + '(' => ["begin senten$sign{_}ce", 'pm'], + ')' => ["end senten$sign{_}ce", 'pm'], + '_' => ['"soft" bol down', "pm"], + '+' => ["next line", "pm"], + '`' => ["goto mark", "pm arg"], + '0' => ['"hard" bol', "pm"], + '^^'=> ["edit alt. file", "co"], + '-' => ["prev line", "pm"], + '=' => ["re$sign{_}ind$sign{_}ent", 'co argm undo'], + '?' => ["find rev.", "pm arg modec"], + ';' => ["repeat t/f/T/F", "pm"], + ':' => ["ex cmd line", "co modec"], + "'" => ["goto mark bol", "pm arg"], + '"' => ["use reg$sign{_}ister", 'co arg'], + '\\' => ["reser$sign{_}ved", 'me arg'], + '^\\' => ["to mode/$sign{_}ext$sign{_}ens$sign{_}ion$sign{_}s", "mo arg"], + ',' => ["reverse t/T/f/F", "pm"], + '<' => ["un$sign{_}ind$sign{_}ent", "co argm undo"], + '.' => ["repeat last cmd", "co undo"], + '>' => ["ind$sign{_}ent", "co argm undo"], + '/' => ["find", "pm arg modec"], + '[' => ["move back$sign{_}ward$sign{_}s", "me arg mode["], + '{' => ["begin parag.", "pm"], + ']' => ["move forw$sign{_}ard", "me arg mode]"], + '}' => ["end parag.", "pm"], + '^]'=> ["go to tag", "po"], + '|' => ["goto (1st) col", "pm"], + + 'a' => ["app$sign{_}end", "mi undo modei"], + 'A' => ["app$sign{_}end to eol", "mi undo modei"], + '^a'=> ["incr$sign{_}ement", "co undo", "Add one"], + 'b' => ["prev word", "pm", "Back"], + 'B' => ['prev word', "pm"], + '^b'=> ["page up", "pm"], + 'c' => ["chan$sign{_}ge", "mi argm undo modei"], + 'C' => ["chan$sign{_}ge to eol", "mi undo modei"], + '^c'=> ["abort", "co"], + 'd' => ["del$sign{_}ete", "co argm undo"], + 'D' => ["delete to eol", "co undo"], + '^d'=> ["scroll down", "po"], + 'e' => ["end word", "pm"], + 'E' => ['end word', "pm"], + '^e'=> ["window down", "po", "Extra line"], + 'f' => ["fwd to char", "pm arg"], + 'F' => ["back$sign{_}wd to char", "pm arg"], + '^f'=> ["page down", "pm", "page Forward"], + 'g' => ["extra cmds", "me arg modeg"], + 'G' => ["eof/$sign{_}goto ln", "pm"], + '^g'=> [":file (info)", "ci"], + 'h' => [$sign{left}, "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 vim", 'Increase position'], + 'j' => [$sign{down}, "pm"], + 'J' => ["join lines", "co undo"], + '^j'=> "j", + 'k' => [$sign{up}, "pm"], + 'K' => ["help", "co", "looKup Keyword"], + 'l' => [$sign{right}, "pm"], + 'L' => ["screen bottom", "pm", "Lowermost Line"], + '^l'=> ["redraw", "ci"], + 'm' => ["set mark", "co arg"], + 'M' => ["screen mid$sign{_}dle", "pm"], + '^m'=> "+", + 'n' => ["next find", "pm"], + 'N' => ["prev find", "pm"], + '^n'=> "j", + 'o' => ["line below", "mi undo modei", 'Open'], + 'O' => ["line above", "mi undo modei"], + '^o'=> ["jump to older", "pm vim"], + 'p' => ["paste after", "co undo"], + 'P' => ["paste before", "co undo"], + '^p'=> "k", + 'q' => ["rec$sign{_}ord macro", "mo arg", "Queue seQuence"], + 'Q' => ["ex mode", "mo"], + '^q'=> ["(xon)", "ci", 'Qome back'], # or ^v + 'r' => ["repl$sign{_}ace char", "co arg undo"], + 'R' => ["repl$sign{_}ace mode", "mi undo modei"], + '^r'=> ["redo", "co undo vim"], + 's' => ["subst char", "mi undo modei"], + 'S' => ["subst line", "mi undo modei"], + '^s'=> ["(xoff)", "ci", 'Stop'], + 't' => ["till char", "pm arg"], + 'T' => ["back till char", "pm"], + '^t'=> ["back tag", "po"], # backtrag :P + 'u' => ["undo", "co undo"], + 'U' => ["undo line", "co undo"], + '^u'=> ["scroll up", "po"], + 'v' => ["visual mode", "mv modev"], + 'V' => ["visual lines", "mv modev"], + '^v'=> ["visual block", "mv modev vim"], + 'w' => ["next word", "pm"], + 'W' => ['next word', "pm"], + '^w'=> ["win$sign{_}dow cmds", "me arg mode^w"], + 'x' => ["delete char", "co undo"], + 'X' => ["back$sign{_}space", "co undo"], + '^x'=> ["subs$sign{_}tract", "co undo"], + 'y' => ["yank", "co argm", '(copy)'], + 'Y' => ["yank line", "co"], + '^y'=> ["window up", "po", 'Yield'], + 'z' => ["extra cmds", "me arg modez"], + 'Z' => ["quit", "me arg modeZ"], + '^z'=> [":sus$sign{_}pend", "ci", 'zzz (as in sleep)'], +}, # normal mode + +g => { + desc => "extended commands (g)", + lead => "g", + + '~' => ["case toggl$sign{_}e", "co argm vim"], + '@' => ["oper$sign{_}at$sign{_}or$sign{_}func", "co vim7"], + '#' => ["rev. find string", "pm vim"], + '$' => ["virt$sign{_}ual eol", "pm"], + '^' => [qq'"soft" bol v$sign{_}irt$sign{_}ual', "pm vim"], + '&' => [":s rep$sign{_}eat glob$sign{_}al$sign{_}ly", "co", "Global substitute"], + '*' => ["find string", "pm vim"], + '_' => [qq'"soft" eol', "pm vim"], + '+' => ["later undo", "co vim7"], + '`' => ["to mark keepj$sign{_}umps", "pm vim arg"], + '8' => ["char hex val$sign{_}ue$sign{_}s", "ci"], + '0' => ["virtual bol", "pm vim"], + '-' => ["earlier undo", "co vim7"], + '^['=> ["esc", "mo mode"], + ']' => ["go to tselect", "po"], + '^]'=> ["go to tjump", "po"], + ';' => ["to prev change pos", "pm"], + "'" => ["to mark keepj$sign{_}umps", "pm vim arg"], + '<' => ["see prev cmd output", "co vim7"], + '?' => ["rot13 encode", "co argm vim"], + ',' => ["to next change pos", "pm"], + + 'a' => ["char value", "ci", "Get Ascii value"], + '^a'=> ["mem usage stats", "ci"], + 'd' => ["local declar$sign{_}ation", "pm vim"], + 'D' => ["global declar$sign{_}ation", "pm vim"], + 'e' => ["back to word end", "pm"], + 'E' => [qq'back to word end', "pm"], + 'f' => ["edit file at cur$sign{_}sor", "co vim", "Goto File"], + 'F' => ["edit file + jump", "co vim7"], + 'g' => ["first line", "pm"], + '^g'=> ["cur$sign{_}sor pos info", "ci"], + 'h' => ["select mode", "mv modev", "Get Highlighted"], + 'H' => ["select lines", "mv modev", "Get Highlighted"], + '^h'=> ["select block", "mv modev vim", "Get Highlighted"], + 'i' => ["insert at last pos", "mi undo modei"], + 'I' => ["insert at soft bol", "mi undo modei"], + 'j' => ["$sign{down} screen", "pm vim"], + 'J' => ["join leave spac$sign{_}ing", "co"], + 'k' => ["$sign{up} screen", "pm vim"], + 'm' => ["cen$sign{_}ter screen", "pm vim"], + 'o' => [":goto (byte)", "pm"], + 'p' => ["paste still", "co undo"], + 'P' => ["paste before still", "co"], + 'q' => ["for$sign{_}mat", "co argm"], + 'Q' => ["ex mode manual :", "mo vim"], + 'r' => ["virt. repl$sign{_}ace char", "co arg"], + 'R' => ["virt. repl$sign{_}ace mode", "mi undo modei"], + 's' => ["sleep", "ci vim", "Go to Sleep"], + 't' => ["next tab", "po vim7", "Goto Tab"], + 'T' => ["tab back", "po vim7"], + 'u' => ["lower$sign{_}case", "co argm vim"], # XXX undo? + 'U' => ["up$sign{_}per$sign{_}case", "co undo argm vim"], + 'v' => ["prev$sign{_}ious highl$sign{_}ight", 'mv modev', 'precedinG Visual'], + 'V' => ["avoid resel$sign{_}ect$sign{_}ion", "co"], + 'w' => ["for$sign{_}mat still", "co argm vim7"], + 'x' => ["Netrw$sign{_}BrowseX", "co vim7"], +}, # mode g + +Z => { + desc => "quit commands", + lead => "Z", + + '^['=> ["esc", "mo mode"], + + 'Q' => [" :q! (force)", "co vim"], + 'Z' => [" :wq (write)", "co"], +}, # mode Z + +z => { + desc => "additional commands (z)", + lead => "z", + + '^' => ["page above", "po"], + '+' => ["page below", "po"], + '-' => ["line at bottom bol", "po", "don't (-) see any further"], + '=' => ["sug$sign{_}gest spell$sign{_}ing", "co vim7"], + '.' => ["line at center bol", "po"], + '^['=> ["esc", "mo mode"], + + 'a' => ["toggle fold", "co vim folding"], + 'A' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly", "co vim folding"], + 'b' => ["line at bot. bol", "po"], + 'c' => ["close fold", "co vim folding"], + 'C' => ["close folds rec$sign{_}curs$sign{_}ive$sign{_}ly", "co vim folding"], + 'd' => ["delete fold", "co vim folding"], + 'D' => ["delete folds rec$sign{_}urs$sign{_}ive", "co vim folding"], + 'e' => ["cursor at right side", "po"], + 'E' => ["elimi$sign{_}nate f$sign{_}olds", "co vim folding"], + 'f' => ["create fold", "co argm vim folding"], + 'F' => ["fold lines", "co vim folding"], + 'g' => ["add spell$sign{_}ing", "co vim7", 'Good word'], + 'G' => ["temp spell$sign{_}ing", "co vim7"], + 'h' => ["scroll $sign{right}", "po"], + 'H' => ["scroll $sign{right} half scr$sign{_}een", "po"], + 'i' => ["toggle all folds", "co vim folding"], + 'j' => ["next fold start", "pm vim folding"], + 'k' => ["prev fold end", "pm vim folding"], + 'l' => ["scroll $sign{left}", "po"], + 'L' => ["scroll $sign{left} half scr$sign{_}een", "po"], + '^m'=> ["line at top bol", "po"], + 'm' => ["fold more", "co vim folding"], + 'M' => ["close all folds", "co vim folding"], + 'n' => ["fold none", "co vim folding"], + 'N' => ["fold norm$sign{_}al", "co vim folding"], + 'o' => ["open fold", "co vim folding"], + 'O' => ["open folds rec$sign{_}urs$sign{_}ive$sign{_}ly", "co vim folding"], + 'r' => ["reduce folding", "co vim folding"], + 'R' => ["open all folds", "co vim folding"], + 's' => ["cursor at left side", "po"], + 't' => ["line at top", "po"], + 'u' => ["undo spell$sign{_}ing", "co arg vim7"], + 'v' => ["unfold cursor line", "co vim folding"], + 'w' => ["add missp$sign{_}ell$sign{_}ing", "co vim7", "Wrong word"], + 'W' => ["temp missp$sign{_}ell$sign{_}ing", "co vim7"], + 'x' => ["update folds", "co vim folding"], + 'X' => ["re$sign{_}apply f$sign{_}olds", "co vim folding"], + 'z' => ["line at center", "po", "Zee Zenter (with a funny accent)"], +}, # mode z + +'[' => { + desc => "backward search commands ([)", + lead => "[", + + "`" => ["previous lc mark", "pm vim"], + '#' => ["previous open #if$sign{_}/#else", "pm"], + '(' => ["previous open (", "pm"], + '*' => "[/", + '/' => ["start of C com$sign{_}m$sign{_}ent", "pm"], + "'" => "[` ^", # vim + '{' => ["previous open {", "pm"], + '[' => ["section back$sign{_}ward$sign{_}s", "pm"], + '^['=> ["esc", "mo mode"], + ']' => [qq'section back$sign{_}ward$sign{_}s', "pm"], + + 'c' => ["start of change backw$sign{_}ards", "pm"], + 'd' => ["define line", "ci"], + 'D' => ["defin$sign{_}ition", "co"], + '^d'=> ["to defin$sign{_}it$sign{_}ion", "po"], + 'f' => "gf", # deprecated + 'i' => ["first occur$sign{_}renc$sign{_}e line", 'ci'], + 'I' => ["first occur$sign{_}renc$sign{_}e", 'co'], + '^i'=> ["to first occur$sign{_}renc$sign{_}e", 'po'], + 'm' => ["start of funct$sign{_}ion", "pm"], + 'p' => ["P reind$sign{_}ent$sign{_}ed", "co"], + 'P' => ["[p", "co"], + 's' => ["last missp$sign{_}ell$sign{_}ing", "po vim7"], + 'S' => ["last bad word", "po vim7"], + 'z' => ["start of open fold", "pm vim folding"], +}, # mode [ + +']' => { + desc => "forward search commands (])", + lead => "]", + + "`" => ["next lc mark", "pm vim"], + '#' => ["next open #endif$sign{_}/#else", "pm"], + ')' => ["next open )", "pm"], + '*' => "]/", + "'" => "]` ^", # vim + '/' => ["end of C com$sign{_}m$sign{_}ent", "pm"], + '[' => [qq'section forw$sign{_}ard', "pm"], + '^['=> ["esc", "mo mode"], + ']' => ["section forw$sign{_}ard", "pm"], + '}' => ["next open }", "pm"], + + 'c' => ["start of change forw$sign{_}ards", "pm"], + 'd' => ["next define line", "ci"], + 'D' => ["next define", "co"], + '^d'=> ["to next define", "po"], + 'f' => "gf", # deprecated + 'i' => ["next occur$sign{_}renc$sign{_}e line", "ci"], + 'I' => ["next occur$sign{_}renc$sign{_}e", "co"], + '^i'=> ["to occur$sign{_}renc$sign{_}e", "po"], + 'm' => ["end of funct$sign{_}ion", "pm"], + 'p' => ["p reind$sign{_}ent$sign{_}ed", "co"], + 'P' => "[p", + 's' => ["next missp$sign{_}ell$sign{_}ing", "po vim7"], + 'S' => ["next bad word", "po vim7"], + 'z' => ["end of open fold", "pm vim folding"], +}, # mode ] + +'^w' => { + desc => "window commands (ctrl-w)", + lead => $ascii ? "'w" : "ŵ", + + '<' => ["width decr$sign{_}ease", "po"], + '>' => ["width incr$sign{_}ease", "po"], + '^' => ["split, edit alt file", "co"], + '_' => ["set height", "po"], + '+' => ["height incr$sign{_}ease", "po"], + '-' => ["height decr$sign{_}ease", "po"], + '=' => ["same height", "po"], + '^['=> ["esc", "mo mode"], + ']' => ["split, to tag", "po"], + '}' => ["pre$sign{_}view tag", "po"], + '|' => ["set width", "po"], + + 'b' => ["go to bot$sign{_}tom", "po"], + 'c' => [":close", "po"], + '^c'=> ["abort", "mo mode"], + 'd' => ["split, to def$sign{_}inition", "po"], + 'f' => ["split, file edit", "co"], + 'F' => ["^wf, jump to line", "co vim7"], + 'g' => ["extra cmds", "me arg mode^wg"], + 'h' => ["go left", "po"], + 'H' => ["move far left", "po"], + 'i' => ["split, to decl of id$sign{_}ent$sign{_}ifier", "po"], + 'j' => ["go down", "po"], + 'J' => ["move to bottom", "po"], + 'k' => ["go up", "po"], + 'K' => ["move to top", "po"], + 'l' => ["go right", "po"], + 'L' => ["move far right", "po"], + 'n' => ["open new", "co"], + 'o' => [":only current", "po"], + 'p' => ["go to prev$sign{_}ious", "po"], + 'P' => ["go to pre$sign{_}view", "po"], + 'q' => [":quit current", "co"], + 'r' => ["rotate down$sign{_}ward$sign{_}s", "po"], + 'R' => ["rotate up$sign{_}ward$sign{_}s", "po"], + 's' => ["split horiz$sign{_}ont$sign{_}al$sign{_}ly", "po"], + 'S' => "^ws", + 't' => ["go to top", "po"], + 'v' => ["split vert$sign{_}ic$sign{_}al$sign{_}ly", "po"], + 'w' => ["go to next", "po", "Wrap around"], + 'W' => ["go above$sign{_}/left", "po"], + 'x' => ["ex$sign{_}chan$sign{_}ge", "po"], + 'z' => ["close pre$sign{_}view", "po"], +}, # mode ^w + +'^wg' => { + desc => "extended window commands (ctrl-w g)", + lead => $ascii ? "'wg" : "ŵg", + + '^['=> ["esc", "mo mode"], + ']' => ["split, :ts$sign{_}elect", "po"], + '}' => [":ptj$sign{_}ump to tag", "po"], + '^]'=> ["split, :tj$sign{_}ump", "po"], + 'f' => ["file in tab", "co vim7"], + 'F' => ["^wgf, to line$sign{_}nr", "co vim7"], +}, # mode ^w g + +v => { + desc => "visual mode", + + '!' => ["external filter", "co"], + ':' => ["cmd on range", "mo modec"], + '<' => ["un$sign{_}indent", "co"], + '=' => ["re$sign{_}ind$sign{_}ent", 'co undo'], + '>' => ["ind$sign{_}ent", 'co'], + '~' => ["toggle case", "co vim"], + '^['=> ["esc", "mo mode"], + '^]'=> ["jump to tag", "po"], + '^\\'=>'^\\', + + 'a' => ["ex$sign{_}tend area", 'me modeva arg vim'], + 'A' => ["ap$sign{_}pend to block", 'mi modei vim'], # block + 'c' => ["repl$sign{_}ace area", 'mi modei vim'], + 'C' => ["repl$sign{_}ace full lines", 'mi modei vim'], # like vS, but blocks are extended until eol + '^c'=> ["abort", "mo mode"], + 'd' => ["delete area", "co vim"], + 'D' => ["delete lines", "co vim"], + 'g' => ["extra cmds", "me arg modevg"], + '^g'=> ["select mode", "mv"], + '^h'=> ["back$sign{_}space", 'co'], # delete in select mode, left otherwise + 'i' => ["extend inner a$sign{_}r$sign{_}ea", "me modeva arg vim"], + 'I' => ["insert to block", "mi modei vim"], # block + 'J' => ["join lines", "co"], + 'K' => ["help sel$sign{_}ect$sign{_}ion", 'co'], + 'o' => ["to other corner", "pm"], + 'O' => ["to other side", "pm"], + '^o'=> ["visual once", "mv"], # select + 'p' => ["repl$sign{_}ace w/ paste", 'co'], + 'P' => ["repl$sign{_}ace w/ paste", 'co'], + '^q'=> "^q", + 'r' => ["fill up w/ ch$sign{_}ar", 'co arg'], + 'R' => "vS", # "might change in future" + '^s'=> "^s", + 's' => "vc", + 'S' => ["repl$sign{_}ace lines", 'mi modei vim'], + 'u' => ["lower$sign{_}case", "co vim"], + 'U' => ["upper$sign{_}case", "co vim"], + 'v' => ["char$sign{_}wise", "mv"], + 'V' => ["line$sign{_}wise", "mv"], + '^v'=> ["block$sign{_}wise", "mv vim"], + 'x' => "vd", + 'X' => "vD", + 'y' => ["yank area", "co"], + 'Y' => ["yank lines", "co"], + + map {$_ => $_} qw( + b B ^b ^d e E ^e f F ^f G h H ^i j ^j k l L m M ^m + n N ^n ^p q ^s t T ^u w W ^w ^y z ^z + ` # $ % ^ * ( 0 ) [ { ] } ; / ? + - _ | + ) # a lot like normal mode +}, # mode v + +vg => { + desc => "extended visual commands (v g)", + lead => "g", + + '^['=> ["esc", "mv modev"], + '?' => ["rot13 encode", "co vim"], + 'J' => ["join literal$sign{_}ly", 'co vim'], + 'q' => ["for$sign{_}mat", "co vim"], + 'v' => 'gv', + 'w' => ["for$sign{_}mat still", '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' => ['word', 'pm vim'], +}, # mode v a + +#c => { +# desc => "command-line mode", +# +# '^_' => 'i^_', +# '^^' => 'i^^', +# '^\\'=>'^\\', +# '^a' => ["complete", ""], #todo +# '^b' => ["bol", "po"], +# '^c' => 'i^c', +# '^d' => ["complete", ""], #todo +# '^e' => ["eol", "po"], +# '^h' => 'i^h', +# '^j' => ["execute cmd", "co"], +# '^k' => 'i^k', +# '^l' => ["complete", ""], #todo +# '^n' => ["complete", ""], #todo +# '^p' => ["complete", ""], #todo +# '^r' => 'i^r', # and then some... +# ## ["insert register", "co arg vim"], +# '^q' => '^q', +# '^u' => 'i^u', +# '^v' => 'i^v', +# '^w' => 'i^w', +# '^y' => ["selec$sign{_}tion to clip$sign{_}b$sign{_}oard", "co"], +#}, # mode c + +i => { + desc => "insert mode", + + '^@' => ["last insert", "co"], + '^^' => ["toggle :lmap usag$sign{_}e", "co vim"], + '^[' => ["esc", "mo mode"], + '^]' => ["abbrev$sign{_}iate", "co vim"], + '^_' => ["toggle lang$sign{_}uage", "co vim"], + '^\\'=>'^\\', + + '^a' => ["insert prev$sign{_}ious", "co vim"], + '^b' => ["former i^_", "no vim"], + '^c' => ["abort, no abbr", "mo mode"], + '^d' => ["un$sign{_}ind$sign{_}ent", 'co'], + '^e' => ["ins char below", "co vim"], + '^f' => ["set indent$sign{_}ation", 'co'], + '^g' => ["extra cmds", "me modei^g arg"], + '^h' => ["back$sign{_}space", "co"], + '^i' => ["tab", "co"], + '^j' => ["enter", "co"], + '^k' => ["di$sign{_}graph", "co arg arg vim linkdigraphs.plp", "Key code"], + '^l' => ["im leave ins mode", "mo mode vim"], # insertmode only + '^m' => ["enter", "co"], + '^n' => ["find next keyword", "pm vim"], + '^o' => ["exec$sign{_}ute cmd", 'co'], + '^p' => ["find prev keyword", "pm vim"], + '^q' => "^q", # or i^v + '^r' => ["insert reg$sign{_}ister", 'co arg vim'], + '^s' => "^s", + '^t' => ["indent", "co"], + '^u' => ["delete line", "co"], + '^v' => ["literal or ch$sign{_}ar$sign{_}cod$sign{_}e", 'co', "Verbatim or by Value"], + '^w' => ["delete word back", "co"], + '^x' => ["ex$sign{_}pand mode", 'me arg modei^x vim'], + '^y' => ["ins char above", "co vim"], + '^z' => [":sus$sign{_}pend in im", "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"], # yes, it really leaves insert mode + '^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e", 'co'], + '^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e", 'co'], + '^e' => ["window up", "po"], + '^f' => ["file comp$sign{_}l$sign{_}et$sign{_}e", 'co'], + '^i' => ["ident comp$sign{_}l$sign{_}et$sign{_}e", 'co'], + '^k' => ["dict comp$sign{_}l$sign{_}et$sign{_}e", 'co'], + '^l' => ["line comp$sign{_}l$sign{_}et$sign{_}e", 'co'], + '^n' => ["next comp$sign{_}l$sign{_}et$sign{_}e", 'co'], + '^o' => ["omni comp$sign{_}l$sign{_}et$sign{_}e", 'co vim7'], + '^p' => ["prev comp$sign{_}l$sign{_}ete", 'co'], + '^s' => ["spell sugg$sign{_}est", 'co'], + 's' => 'i^x^s', + '^t' => ["thes$sign{_}aur$sign{_}us compl$sign{_}et$sign{_}e", 'co'], + '^u' => ["cus$sign{_}tom comp$sign{_}l$sign{_}et$sign{_}e", 'co vim7'], + '^v' => ["ex cmd compl$sign{_}et$sign{_}e", 'co'], + '^y' => ["window down", "po"], +}, # mode i ^x + +# XXX ex mode if you want to go completely wild +