use utf8;
+my @motions = qw(
+ g z [ ]
+ b B e E f F G ^h h H j ^j k l L M ^m n N ^n ^p t T w W
+ 0 ` ' # $ % ^ * ( ) { } ; / ? + - _ | ,
+);
+
{
key => {
'gJ' => "join leave spac<>ing",
'gk' => "<up> screen",
'gm' => "cen<>ter screen",
+ 'gn' => "select next find",
+ 'gN' => "select prev find",
'go' => ":goto (byte)",
'gp' => "paste still",
'gP' => "paste before still",
'[^i'=> "to first occur<>renc<>e",
'[m' => "start of funct<>ion",
'[p' => "P reind<>ent<>ed",
- '[P' => "[p",
'[s' => "last missp<>ell<>ing",
'[S' => "last bad word",
'[z' => "start of open fold",
'^wR' => "rotate up<>ward<>s",
'^ws' => "split horiz<>ont<>al<>ly",
'^wt' => "go to top",
+ '^wT' => "to tab",
'^wv' => "split vert<>ic<>al<>ly",
'^ww' => "go to next\nWrap around",
'^wW' => "go above<>/left",
'va' => "ex<>tend area",
'vA' => "ap<>pend to block", # block
+ 'v^a'=> "incr<>ement num<>bers",
'vc' => "repl<>ace area",
'vC' => "repl<>ace full lines", # like vS, but blocks are extended until eol
'v^c'=> "abort",
'vD' => "delete lines",
'vg' => "extra cmds",
'v^g'=> "select mode",
- 'v^h'=> "back<>space", # delete in select mode, left otherwise
'vi' => "extend inner a<>r<>ea",
'vI' => "insert to block", # block
'vJ' => "join lines",
'vv' => "char<>wise",
'vV' => "line<>wise",
'v^v'=> "block<>wise",
+ 'v^x'=> "decr<>ement num<>bers",
'vy' => "yank area",
'vY' => "yank lines",
"vg\e"=> "visual mode",
'vg?' => "rot13 encode",
+ 'vg^a'=> "seq. incr<>ement",
'vg^g'=> "count region info",
'vgJ' => "join literal<>ly",
'vgq' => "for<>mat",
'vgw' => "for<>mat still",
+ 'vg^x'=> "seq. decr<>ement",
"va'" => "quoted string",
'va<' => "<> block",
'i^gk' => "<up> start col<>umn",
'i^gj' => "<down> start col<>umn",
'i^gu' => "break undo seq<>uence",
+ 'i^gU' => "keep undo seq<>uence",
# other i^g keys (even esc) are not recognized
"i^x\e" => "normal mode",
'i^x^u' => "cus<>tom comp<>l<>et<>e",
'i^x^v' => "ex cmd compl<>et<>e",
'i^x^y' => "window down",
+
+ # plugins
+ 'gc' => "(un)<>com<>ment\ncommentary or tComment plugin",
+ 'vgc' => "(un)<>com<>ment\ncommentary or tComment plugin",
+ 'gl' => "align to left\nlion plugin, also good for easy-align",
+ 'vgl' => "align to left\nlion plugin, also good for easy-align",
+ 'gL' => "align to right\nlion plugin",
+ 'vgL' => "align to right\nlion plugin",
+ 'i^gs' => "sur<>round\nsurround plugin",
+
+ # unimpaired
+ '[a' => "prev<>ious file\nunimpaired map for :prev",
+ ']a' => "next file\nunimpaired map for :n",
+ '[A' => "first file\nunimpaired map for :rew",
+ ']A' => "last file\nunimpaired map for :la",
+ '[b' => "prev<>ious buffer\nunimpaired map for :bp",
+ ']b' => "next buffer\nunimpaired map for :bn",
+ '[B' => "first buffer\nunimpaired map for :br",
+ ']B' => "last buffer\nunimpaired map for :bl",
+ '[e' => "exchange line above\nunimpaired plugin",
+ ']e' => "exchange line belo<>w\nunimpaired plugin",
+ '[f' => "preced<>ing file alph<>abet<>ic<>al<>ly\nunimpaired plugin",
+ ']f' => "next file alph<>abet<>ic<>al<>ly\nunimpaired plugin",
+ '[l' => "previous loc<>at<>ion\nunimpaired map for :lp",
+ ']l' => "next loc<>ation\nunimpaired map for :lne",
+ '[L' => "first loc<>ation\nunimpaired map for :lr",
+ ']L' => "last loc<>ation\nunimpaired map for :lla",
+ '[^l'=> "next file in loc<>at<>ions\nunimpaired map for :lpf",
+ ']^l'=> "file back in loc<>at<>ions\nunimpaired map for :lnf",
+ '[n' => "previous conflict<>/hunk\nunimpaired plugin",
+ ']n' => "next confl<>ict<>/hunk\nunimpaired plugin",
+ '[o' => "enable option\nunimpaired plugin",
+ ']o' => "disable option\nunimpaired plugin",
+ 'yo' => "toggle option\nunimpaired plugin",
+ '[q' => "previous quickfix\nunimpaired map for :cp",
+ ']q' => "next quickfix error\nunimpaired map for :cn",
+ '[Q' => "first quickfix\nunimpaired map for :cr",
+ ']Q' => "last quickfix error\nunimpaired map for :cla",
+ '[^q'=> "quickfix file b<>ack\nunimpaired map for :cpf",
+ ']^q'=> "next file in q<>uick<>f<>ix\nunimpaired map for :cnf",
+ '[t' => "previous tag\nunimpaired map for :tp",
+ ']t' => "next tag\nunimpaired map for :tn",
+ '[T' => "first tag\nunimpaired map for :tr",
+ ']T' => "last tag\nunimpaired map for :tl",
+ '[u' => "url encode\nunimpaired plugin",
+ ']u' => "url decode\nunimpaired plugin",
+ '[x' => "xml encode\nunimpaired plugin",
+ ']x' => "xml decode\nunimpaired plugin",
+ '[y' => "escape c str<>ing\nunimpaired plugin",
+ ']y' => "unescap<>e c str<>ing\nunimpaired plugin",
+
+ (map { ("d$_" => "delete to <alias>$_") } qw( g z [ ] )),
+ 'dW' => 'delete <span style="font-variant:small-caps">word</span>',
+ 'db' => 'delete <left> word',
+ 'dB' => 'delete <left> <span style="font-variant:small-caps">word</span>',
+ 'de' => 'delete word e<>nd',
+ 'dE' => 'delete <span style="font-variant:small-caps">word</span> e<>nd',
+ 'df' => 'delete to char<>acter',
+ 'dF' => 'delete <left> to char<>acter',
+ 'dG' => 'delete to line<>/eof',
+ 'dH' => 'delete to top',
+ 'dj' => 'delete <down> line',
+ 'dk' => 'delete <up> line',
+ 'dL' => 'delete to bottom',
+ 'dM' => 'delete to middle',
+ 'dn' => 'delete to next res<>ult',
+ 'dN' => 'delete to prev res<>ult',
+ 'dt' => 'delete upto ch<>ar<>acter',
+ 'dT' => 'delete <left> upto ch<>ar<>acter',
+ 'dw' => 'delete word',
+ 'd,' => 'delete to prev ch<>ar<>acter',
+ 'd;' => 'delete to next ch<>ar<>acter',
+ 'd/' => 'delete to res<>ult',
+ 'd?' => 'delete <left> to res<>ult',
+ 'd`' => 'delete to mark',
+ "d'" => 'delete lines to m<>ark',
+ 'd*' => 'delete to find',
+ 'd#' => 'delete <left> to find',
+ 'd%' => 'delete to line pct',
+ 'd^' => 'delete to soft bol',
+ 'd0' => 'delete to bol',
+ 'd|' => 'delete to col<>umn',
+ 'd{' => 'delete <left> par<>agr<>aph',
+ 'd}' => 'delete rest of p<>ar<>agr<>aph',
+ 'd(' => 'delete <left> senten<>ce',
+ 'd)' => 'delete rest of s<>en<>ten<>ce',
+ 'da' => 'delete area',
+ 'di' => 'delete inner',
+ 'dd' => 'delete line',
+ 'do' => 'diff obtain',
+ 'dp' => 'diff put',
+ 'ds' => 'delete surr<>oun<>d<>ing',
},
mode => {
i => "insert mode",
'i^g' => "extended insert commands (i ctrl-g)",
'i^x' => "insert completion commands (i ctrl-x)",
+ d => 'delete motions',
},
flag => {
arg => ["key<arg>", "Commands with a dot need a char argument afterwards."],
motion => ["key<motion>", "Requires a motion afterwards, operates between cursor and destination."],
- 'vim6 ext' => ["vim", "Not in original Vi (assessment incomplete)."],
- 'vim7 ext new' => ["vim7", "New in vim version 7.x."],
+ 'v6 new' => ["vim", "Not in original Vi (assessment incomplete)."],
+ 'xcommentary xlion xsurround xunimpaired ext' => ["plugin", "Optional features provided by common plugins."],
},
def => {
'~' => "g4 undo",
'!' => "g4 argm undo modec",
'@' => "g4 arg undo",
- '#' => "g2 ext vim6",
+ '#' => "g2 v6",
'$' => "g2",
'%' => "g2",
'^' => "g2",
'&' => "g4 undo",
- '*' => "g2 ext vim6",
+ '*' => "g2 v6",
'(' => 'g2',
')' => 'g2',
'_' => "g2",
'^a'=> "g4 undo",
'b' => "g2",
'B' => "g2",
- '^b'=> "g2",
+ '^b'=> "g3",
'c' => "g6 argm undo modei",
'C' => "g6 undo modei",
'^c'=> "g4",
- 'd' => "g4 argm undo",
+ 'd' => "g4 argm undo moded",
'D' => "g4 undo",
'^d'=> "g3",
'e' => "g2",
'^e'=> "g3",
'f' => "g2 arg",
'F' => "g2 arg",
- '^f'=> "g2",
+ '^f'=> "g3",
'g' => "g9 arg modeg",
'G' => "g2",
'^g'=> "g1",
'^h'=> "=h",
'i' => "g6 undo modei",
'I' => "g6 undo modei",
- '^i'=> "g2 ext vim6",
+ '^i'=> "g2 v6",
'j' => "g2",
'J' => "g4 undo",
'^j'=> "=j",
'^n'=> "=j",
'o' => "g6 undo modei",
'O' => "g6 undo modei",
- '^o'=> "g2 ext vim6",
+ '^o'=> "g2 v6",
'p' => "g4 undo",
'P' => "g4 undo",
'^p'=> "=k",
'^q'=> "g1", # or ^v
'r' => "g4 arg undo",
'R' => "g6 undo modei",
- '^r'=> "g4 undo ext vim6",
+ '^r'=> "g4 undo v6",
's' => "g6 undo modei",
'S' => "g6 undo modei",
'^s'=> "g1",
'^u'=> "g3",
'v' => "g8 modev",
'V' => "g8 modev",
- '^v'=> "g8 modev ext vim6",
+ '^v'=> "g8 modev v6",
'w' => "g2",
'W' => "g2",
'^w'=> "g9 arg mode^w",
"\e"=> "g7 mode",
- '~' => "g4 argm ext vim6",
- '@' => "g4 ext vim7 new",
- '#' => "g2 ext vim6",
+ '~' => "g4 argm v6",
+ '@' => "g4 v7",
+ '#' => "g2 v6",
'$' => "g2",
- '^' => "g2 ext vim6",
+ '^' => "g2 v6",
'&' => "g4",
- '*' => "g2 ext vim6",
- '_' => "g2 ext vim6",
- '+' => "g4 ext vim7 new",
- '`' => "g2 ext vim6 arg",
+ '*' => "g2 v6",
+ '_' => "g2 v6",
+ '+' => "g4 v7",
+ '`' => "g2 v6 arg",
'8' => "g1",
- '0' => "g2 ext vim6",
- '-' => "g4 ext vim7 new",
+ '0' => "g2 v6",
+ '-' => "g4 v7",
'^['=> "g7 mode",
']' => "g3",
'^]'=> "g3",
';' => "g2",
- "'" => "g2 ext vim6 arg",
- '<' => "g4 ext vim7 new",
- '?' => "g4 argm ext vim6",
+ "'" => "g2 v6 arg",
+ '<' => "g4 v7",
+ '?' => "g4 argm v6",
',' => "g2",
'a' => "g1",
'^a'=> "g1",
- 'd' => "g2 ext vim6",
- 'D' => "g2 ext vim6",
+ 'c' => 'g4 argm xcommentary',
+ 'd' => "g2 v6",
+ 'D' => "g2 v6",
'e' => "g2",
'E' => "g2",
- 'f' => "g4 ext vim6",
- 'F' => "g4 ext vim7 new",
+ 'f' => "g4 v6",
+ 'F' => "g4 v7",
'g' => "g2",
'^g'=> "g1 vim6",
'h' => "g8 modev",
'H' => "g8 modev",
- '^h'=> "g8 modev ext vim6",
+ '^h'=> "g8 modev v6",
'i' => "g6 undo modei",
'I' => "g6 undo modei",
- 'j' => "g2 ext vim6",
+ 'j' => "g2 v6",
'J' => "g4",
- 'k' => "g2 ext vim6",
- 'm' => "g2 ext vim6",
+ 'k' => "g2 v6",
+ 'l' => 'g3 argm arg xlion',
+ 'L' => 'g3 argm arg xlion',
+ 'm' => "g2 v6",
+ 'n' => "g8 v7 modev",
+ 'N' => "g8 v7 modev",
'o' => "g2",
'p' => "g4 undo",
'P' => "g4",
'q' => "g4 argm",
- 'Q' => "g7 ext vim6",
+ 'Q' => "g7 v6",
'r' => "g4 arg",
'R' => "g6 undo modei",
- 's' => "g1 ext vim6",
- 't' => "g3 ext vim7 new",
- 'T' => "g3 ext vim7 new",
- 'u' => "g4 argm ext vim6", # XXX undo?
- 'U' => "g4 undo argm ext vim6",
+ 's' => "g1 v6",
+ 't' => "g3 v7",
+ 'T' => "g3 v7",
+ 'u' => "g4 argm v6", # XXX undo?
+ 'U' => "g4 undo argm v6",
'v' => 'g8 modev',
'V' => "g4",
- 'w' => "g4 argm ext vim7 new",
- 'x' => "g4 ext vim7 new",
+ 'w' => "g4 argm v7",
+ 'x' => "g4 v7 ext",
}, # mode g
Z => {
"\e"=> "g7 mode",
'^['=> "=\e",
- 'Q' => "g4 ext vim6",
+ 'Q' => "g4 v6",
'Z' => "g4",
}, # mode Z
'^' => "g3",
'+' => "g3",
'-' => "g3",
- '=' => "g4 ext vim7 new",
+ '=' => "g4 v7",
'.' => "g3",
'^['=> "=\e",
- 'a' => "g4 ext vim6 folding",
- 'A' => "g4 ext vim6 folding",
+ 'a' => "g4 v6 folding",
+ 'A' => "g4 v6 folding",
'b' => "g3",
- 'c' => "g4 ext vim6 folding",
- 'C' => "g4 ext vim6 folding",
- 'd' => "g4 ext vim6 folding",
- 'D' => "g4 ext vim6 folding",
+ 'c' => "g4 v6 folding",
+ 'C' => "g4 v6 folding",
+ 'd' => "g4 v6 folding",
+ 'D' => "g4 v6 folding",
'e' => "g3",
- 'E' => "g4 ext vim6 folding",
- 'f' => "g4 argm ext vim6 folding",
- 'F' => "g4 ext vim6 folding",
- 'g' => "g4 ext vim7 new",
- 'G' => "g4 ext vim7 new",
+ 'E' => "g4 v6 folding",
+ 'f' => "g4 argm v6 folding",
+ 'F' => "g4 v6 folding",
+ 'g' => "g4 v7",
+ 'G' => "g4 v7",
'h' => "g3",
'H' => "g3",
- 'i' => "g4 ext vim6 folding",
- 'j' => "g2 ext vim6 folding",
- 'k' => "g2 ext vim6 folding",
+ 'i' => "g4 v6 folding",
+ 'j' => "g2 v6 folding",
+ 'k' => "g2 v6 folding",
'l' => "g3",
'L' => "g3",
'^m'=> "g3",
- 'm' => "g4 ext vim6 folding",
- 'M' => "g4 ext vim6 folding",
- 'n' => "g4 ext vim6 folding",
- 'N' => "g4 ext vim6 folding",
- 'o' => "g4 ext vim6 folding",
- 'O' => "g4 ext vim6 folding",
- 'r' => "g4 ext vim6 folding",
- 'R' => "g4 ext vim6 folding",
+ 'm' => "g4 v6 folding",
+ 'M' => "g4 v6 folding",
+ 'n' => "g4 v6 folding",
+ 'N' => "g4 v6 folding",
+ 'o' => "g4 v6 folding",
+ 'O' => "g4 v6 folding",
+ 'r' => "g4 v6 folding",
+ 'R' => "g4 v6 folding",
's' => "g3",
't' => "g3",
- 'u' => "g4 arg ext vim7 new",
- 'v' => "g4 ext vim6 folding",
- 'w' => "g4 ext vim7 new",
- 'W' => "g4 ext vim7 new",
- 'x' => "g4 ext vim6 folding",
- 'X' => "g4 ext vim6 folding",
+ 'u' => "g4 arg v7",
+ 'v' => "g4 v6 folding",
+ 'w' => "g4 v7",
+ 'W' => "g4 v7",
+ 'x' => "g4 v6 folding",
+ 'X' => "g4 v6 folding",
'z' => "g3",
}, # mode z
"\e"=> "g7 mode",
- "`" => "g2 ext vim6",
+ "`" => "g2 v6",
'#' => "g2",
'(' => "g2",
'*' => "=[/",
'/' => "g2",
- "'" => "=[` ^", # ext vim6
+ "'" => "=[` ^", # v6
'{' => "g2",
'[' => "g2",
'^['=> "=\e",
'^i'=> 'g3',
'm' => "g2",
'p' => "g4",
- 'P' => "g4",
- 's' => "g3 ext vim7 new",
- 'S' => "g3 ext vim7 new",
- 'z' => "g2 ext vim6 folding",
+ 'P' => "=[p",
+ 's' => "g3 v7",
+ 'S' => "g3 v7",
+ 'z' => "g2 v6 folding",
+
+ 'a' => "g3 xunimpaired",
+ 'A' => "g3 xunimpaired",
+ 'b' => "g3 xunimpaired",
+ 'B' => "g3 xunimpaired",
+ 'e' => "g4 xunimpaired",
+ 'l' => "g3 xunimpaired",
+ 'L' => "g3 xunimpaired",
+ '^l'=> "g3 xunimpaired",
+ '^l'=> "g3 xunimpaired",
+ 'f' => "g3 xunimpaired", # overrides native alias
+ 'n' => "g3 xunimpaired",
+ 'o' => "g9 arg xunimpaired",
+ 'q' => "g3 xunimpaired",
+ 'Q' => "g3 xunimpaired",
+ '^q'=> "g3 xunimpaired",
+ 't' => "g3 xunimpaired",
+ 'T' => "g3 xunimpaired",
+ 'u' => "g4 argm xunimpaired",
+ 'x' => "g4 argm xunimpaired",
+ 'y' => "g4 argm xunimpaired",
+ ' ' => "g4 xunimpaired",
}, # mode [
']' => {
"\e"=> "g7 mode",
- "`" => "g2 ext vim6",
+ "`" => "g2 v6",
'#' => "g2",
')' => "g2",
'*' => "=]/",
- "'" => "=]` ^", # ext vim6
+ "'" => "=]` ^", # v6
'/' => "g2",
'[' => "g2",
'^['=> "=\e",
'm' => "g2",
'p' => "g4",
'P' => "=[p",
- 's' => "g3 ext vim7 new",
- 'S' => "g3 ext vim7 new",
- 'z' => "g2 ext vim6 folding",
+ 's' => "g3 v7",
+ 'S' => "g3 v7",
+ 'z' => "g2 v6 folding",
+
+ 'a' => "g3 xunimpaired",
+ 'A' => "g3 xunimpaired",
+ 'b' => "g3 xunimpaired",
+ 'B' => "g3 xunimpaired",
+ 'e' => "g4 xunimpaired",
+ 'l' => "g3 xunimpaired",
+ 'L' => "g3 xunimpaired",
+ '^l'=> "g3 xunimpaired",
+ '^l'=> "g3 xunimpaired",
+ 'f' => "g3 xunimpaired", # overrides native alias
+ 'n' => "g3 xunimpaired",
+ 'o' => "g9 arg xunimpaired",
+ 'q' => "g3 xunimpaired",
+ 'Q' => "g3 xunimpaired",
+ '^q'=> "g3 xunimpaired",
+ 't' => "g3 xunimpaired",
+ 'T' => "g3 xunimpaired",
+ 'u' => "g4 argm xunimpaired",
+ 'x' => "g4 argm xunimpaired",
+ 'y' => "g4 argm xunimpaired",
+ ' ' => "g4 xunimpaired",
}, # mode ]
'^w' => {
'^c'=> "g7 mode",
'd' => "g3",
'f' => "g4",
- 'F' => "g4 ext vim7 new",
+ 'F' => "g4 v7",
'g' => "g9 arg mode^wg",
'h' => "g3",
'H' => "g3",
's' => "g3",
'S' => "=^ws",
't' => "g3",
+ 'T' => "g3 v7",
'v' => "g3",
'w' => "g3",
'W' => "g3",
']' => "g3",
'}' => "g3",
'^]'=> "g3",
- 'f' => "g4 ext vim7 new",
- 'F' => "g4 ext vim7 new",
+ 'f' => "g4 v7",
+ 'F' => "g4 v7",
}, # mode ^w g
v => {
'<' => "g4",
'=' => 'g4 undo',
'>' => 'g4',
- '~' => "g4 ext vim6",
+ '~' => "g4 v6",
'^['=> "=\e",
'^]'=> "g3",
'^\\'=>'^\\',
- 'a' => 'g9 modeva arg ext vim6',
- 'A' => 'g6 modei ext vim6',
- 'c' => 'g6 modei ext vim6',
- 'C' => 'g6 modei ext vim6',
+ 'a' => 'g9 modeva arg v6',
+ 'A' => 'g6 modei v6',
+ '^a'=> 'g4 undo v8',
+ 'c' => 'g6 modei v6',
+ 'C' => 'g6 modei v6',
'^c'=> "g7 mode",
- 'd' => "g4 ext vim6",
- 'D' => "g4 ext vim6",
+ 'd' => "g4 v6",
+ 'D' => "g4 v6",
'g' => "g9 arg modevg",
'^g'=> "g8",
- '^h'=> 'g4',
- 'i' => "g9 modeva arg ext vim6",
- 'I' => "g6 modei ext vim6", # block
+ 'i' => "g9 modeva arg v6",
+ 'I' => "g6 modei v6", # block
'J' => "g4",
'K' => 'g4',
'o' => "g2",
'^o'=> "g8",
'p' => 'g4',
'P' => 'g4',
- '^q'=> "=^q",
'r' => 'g4 arg',
'R' => "=vS", # "might change in future"
- '^s'=> "=^s",
's' => "=vc",
- 'S' => 'g6 modei ext vim6',
- 'u' => "g4 ext vim6",
- 'U' => "g4 ext vim6",
+ 'S' => 'g6 modei v6',
+ 'u' => "g4 v6",
+ 'U' => "g4 v6",
'v' => "g8",
'V' => "g8",
- '^v'=> "g8 ext vim6",
+ '^v'=> "g8 v6",
'x' => "=vd",
'X' => "=vD",
+ '^x'=> 'g4 undo v8',
'y' => "g4",
'Y' => "g4",
- 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
+ (map { $_ => "=$_" } @motions, qw(
+ ^b ^d ^e ^f ^i m q ^q ^s ^u ^w ^y z ^z "
+ )), # a lot like normal mode
}, # mode v
vg => {
"\e"=> "g8 modev",
'^['=> "=\e",
- '?' => "g4 ext vim6",
+ '?' => "g4 v6",
+ '^a'=> 'g4 undo v8',
'^g' => "g1 vim6",
- 'J' => 'g4 ext vim6',
- 'q' => "g4 ext vim6",
+ 'c' => 'g4 xcommentary',
+ 'J' => 'g4 v6',
+ 'l' => 'g3 arg xlion',
+ 'L' => 'g3 arg xlion',
+ 'q' => "g4 v6",
'v' => "=gv",
- 'w' => 'g4 ext vim7 new',
+ 'w' => 'g4 v7',
+ '^x'=> 'g4 undo v8',
}, # mode v g
va => {
'(' => "=vab",
')' => "=vab",
'`' => "=va'",
- "'" => 'g2 ext vim7 new',
+ "'" => 'g2 v7',
'"' => "=va'",
- '<' => 'g2 ext vim6',
+ '<' => 'g2 v6',
'>' => "=va<",
- '[' => 'g2 ext vim6',
+ '[' => 'g2 v6',
'{' => "=vaB",
'^['=> "=\e",
']' => "=va[",
'}' => "=vaB",
- 'b' => 'g2 ext vim6',
- 'B' => 'g2 ext vim6',
- 'p' => 'g2 ext vim6',
- 's' => 'g2 ext vim6',
- 't' => 'g2 ext vim7 new',
- 'w' => 'g2 ext vim6',
- 'W' => 'g2 ext vim6',
+ 'b' => 'g2 v6',
+ 'B' => 'g2 v6',
+ 'p' => 'g2 v6',
+ 's' => 'g2 v6',
+ 't' => 'g2 v7',
+ 'w' => 'g2 v6',
+ 'W' => 'g2 v6',
}, # mode v a
#c => {
# '^n' => "", #todo
# '^p' => "", #todo
# '^r' => "=i^r", # and then some...
- # ## ["g4 arg ext vim6"],
+ # ## ["g4 arg v6"],
# '^q' => "=^q",
# '^u' => "=i^u",
# '^v' => "=i^v",
"\e" => "g7 mode",
'^@' => "g4",
- '^^' => "g4 ext vim6",
+ '^^' => "g4 v6",
'^['=> "=\e",
- '^]' => "g4 ext vim6",
- '^_' => "g4 ext vim6",
+ '^]' => "g4 v6",
+ '^_' => "g4 v6",
'^\\'=>'^\\',
- '^a' => "g4 ext vim6",
- '^b' => "no ext vim6",
+ '^a' => "g4 v6",
+ '^b' => "no v6",
'^c' => "g7 mode",
'^d' => 'g4',
- '^e' => "g4 ext vim6",
+ '^e' => "g4 v6",
'^f' => 'g4',
'^g' => "g9 modei^g arg",
'^h' => "g4",
'^i' => "g4",
'^j' => "g4",
- '^k' => 'g4 arg arg ext vim6 linkdigraphs',
- '^l' => "g7 mode ext vim6", # insertmode only
+ '^k' => 'g4 arg arg v6 linkdigraphs',
+ '^l' => "g7 mode v6", # insertmode only
'^m' => "g4",
- '^n' => "g2 ext vim6",
+ '^n' => "g2 v6",
'^o' => 'g4',
- '^p' => "g2 ext vim6",
+ '^p' => "g2 v6",
'^q' => "=^q", # or i^v
- '^r' => 'g4 arg ext vim6',
+ '^r' => 'g4 arg v6',
'^s' => "=^s",
'^t' => "g4",
'^u' => "g4",
'^v' => 'g4 linkcharset',
'^w' => "g4",
- '^x' => 'g9 arg modei^x ext vim6',
- '^y' => "g4 ext vim6",
- '^z' => "g1 ext vim6", # insertmode only
+ '^x' => 'g9 arg modei^x v6',
+ '^y' => "g4 v6",
+ '^z' => "g1 v6", # insertmode only
}, # modei
'i^g' => {
'k' => 'g2',
'j' => 'g2',
+ 's' => 'g4 arg xsurround',
'u' => 'g4',
+ 'U' => 'g4 v8',
# other keys (even esc) are not recognized
}, # mode i ^g
'^k' => 'g4',
'^l' => 'g4',
'^n' => 'g4',
- '^o' => 'g4 ext vim7 new',
+ '^o' => 'g4 v7',
'^p' => 'g4',
'^s' => 'g4',
's' => "=i^x^s",
'^t' => 'g4',
- '^u' => 'g4 ext vim7 new',
+ '^u' => 'g4 v7',
'^v' => 'g4',
'^y' => "g3",
}, # mode i ^x
+ d => {
+ lead => "d",
+
+ "\e"=> "g7 mode",
+ '^['=> "=\e",
+
+ (map { $_ => 'g4' } @motions),
+ (map { $_ => 'g4 arg' } qw( f F t T ` ' / ? )), # @motions with option
+ (map { $_ => "=v$_" } qw( a i )), # motions from virtual
+ (map { $_ => "=$_" } qw( g z [ ] \\ ^\\ ^q ^s ^z )),
+
+ 'd' => 'g4',
+ 'o' => 'g5',
+ 'p' => 'g5',
+ 's' => 'g4 arg xsurround',
+
+ 'l' => '=x',
+ 'h' => '=X',
+ '^h' => '=X',
+ '^j' => '=dj',
+ '^m' => '=dj',
+ '^n' => '=dj',
+ '+' => '=dj',
+ '^p' => '=dk',
+ '-' => '=dk',
+ '$' => '=D',
+ '_' => '=dd',
+ }, # mode d
+
+ # TODO: mode/ (command-line)
# XXX ex mode if you want to go completely wild
},
}