vim: additional break points in key descriptions
authorMischa POSLAWSKY <perl@shiar.org>
Fri, 10 Oct 2008 22:03:39 +0000 (22:03 +0000)
committerMischa POSLAWSKY <perl@shiar.org>
Fri, 10 Oct 2008 22:03:39 +0000 (22:03 +0000)
Sizing may differ per style, font and platform, so try to prepare for the
worst.

vim-cmds.inc.pl

index a3b9ba4..98abbc6 100644 (file)
@@ -12,20 +12,20 @@ use utf8;
        '^' => ['"soft" bol', "pm"],
        '&' => [":s rep$sign{_}eat", "co undo"],
        '*' => ["find word", "pm vim"],
-       '(' => ["begin sentence", "pm"],
-       ')' => ["end sentence", "pm"],
+       '(' => ["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"],
-       '=' => ["auto form$sign{_}at", "co argm undo"],
+       '=' => ["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 register", "co 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"],
@@ -40,23 +40,23 @@ use utf8;
        '^]'=> ["go to tag", "po"],
        '|' => ["goto (1st) col", "pm"],
 
-       'a' => ["append", "mi undo modei"],
-       'A' => ["append to eol", "mi undo modei"],
+       '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 <span style="font-variant:small-caps">word</span>', "pm"],
        '^b'=> ["page up", "pm"],
        'c' => ["chan$sign{_}ge", "mi argm undo modei"],
-       'C' => ["change to eol", "mi undo modei"],
+       'C' => ["chan$sign{_}ge to eol", "mi undo modei"],
        '^c'=> ["abort", "co"],
-       'd' => ["delete", "co argm undo"],
+       'd' => ["del$sign{_}ete", "co argm undo"],
        'D' => ["delete to eol", "co undo"],
        '^d'=> ["scroll down", "po"],
        'e' => ["end word", "pm"],
        'E' => ['end <span style="font-variant:small-caps">word</span>', "pm"],
        '^e'=> ["window down", "po", "Extra line"],
        'f' => ["fwd to char", "pm arg"],
-       'F' => ['backwd 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"],
@@ -87,11 +87,11 @@ use utf8;
        'p' => ["paste after", "co undo"],
        'P' => ["paste before", "co undo"],
        '^p'=> "k",
-       'q' => ["record macro", "mo arg", "Queue seQuence"],
+       'q' => ["rec$sign{_}ord macro", "mo arg", "Queue seQuence"],
        'Q' => ["ex mode", "mo"],
        '^q'=> ["(xon)", "ci", 'Qome back'], # or ^v
-       'r' => ["replace char", "co arg undo"],
-       'R' => ["replace mode", "mi undo modei"],
+       '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"],
@@ -107,7 +107,7 @@ use utf8;
        '^v'=> ["visual block", "mv modev vim"],
        'w' => ["next word", "pm"],
        'W' => ['next <span style="font-variant:small-caps">word</span>', "pm"],
-       '^w'=> ["window cmds", "me arg mode^w"],
+       '^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"],
@@ -123,8 +123,8 @@ g => {
        desc => "extended commands (g)",
        lead => "g",
 
-       '~' => ["toggle case", "co argm vim"],
-       '@' => ["operat$sign{_}or$sign{_}func", "co vim7"],
+       '~' => ["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"],
@@ -154,7 +154,7 @@ g => {
        'f' => ["edit file at cur$sign{_}sor", "co vim", "Goto File"],
        'F' => ["edit file + jump", "co vim7"],
        'g' => ["first line", "pm"],
-       '^g'=> ["cursor pos info", "ci"],
+       '^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"],
@@ -163,21 +163,21 @@ g => {
        'j' => ["$sign{down} screen", "pm vim"],
        'J' => ["join leave spac$sign{_}ing", "co"],
        'k' => ["$sign{up} screen", "pm vim"],
-       'm' => ["center 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' => ["format", "co argm"],
+       'q' => ["for$sign{_}mat", "co argm"],
        '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"],
+       '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' => ["previous tab", "po vim7"],
+       'T' => ["tab back", "po vim7"],
        'u' => ["lower$sign{_}case", "co argm vim"], # XXX undo?
-       'U' => ["upper$sign{_}case", "co undo argm vim"],
-       'v' => ["previous highl$sign{_}ight", 'mv modev', 'precedinG Visual'],
-       'V' => ["avoid reselect$sign{_}ion", "co"],
+       '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
@@ -199,7 +199,7 @@ z => {
        '^' => ["page above", "po"],
        '+' => ["page below", "po"],
        '-' => ["line at bottom bol", "po", "don't (-) see any further"],
-       '=' => ["spelling suggest$sign{_}ions", "co vim7"],
+       '=' => ["sug$sign{_}gest spell$sign{_}ing", "co vim7"],
        '.' => ["line at center bol", "po"],
        '^['=> ["esc", "mo mode"],
 
@@ -211,11 +211,11 @@ z => {
        'd' => ["delete fold", "co vim folding"],
        'D' => ["delete folds rec$sign{_}urs$sign{_}ive", "co vim folding"],
        'e' => ["cursor at right side", "po"],
-       'E' => ["eliminate folds", "co vim folding"],
+       '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 spelling", "co vim7", 'Good word'],
-       'G' => ["temp spelling", "co vim7"],
+       '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"],
@@ -227,19 +227,19 @@ z => {
        'm' => ["fold more", "co vim folding"],
        'M' => ["close all folds", "co vim folding"],
        'n' => ["fold none", "co vim folding"],
-       'N' => ["fold normal", "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 spelling", "co arg vim7"],
+       'u' => ["undo spell$sign{_}ing", "co arg vim7"],
        'v' => ["unfold cursor line", "co vim folding"],
-       'w' => ["add misspell$sign{_}ing", "co vim7", "Wrong word"],
-       'W' => ["temp misspell$sign{_}ing", "co vim7"],
+       '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' => ["reapply 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
 
@@ -251,7 +251,7 @@ z => {
        '#' => ["previous open #if$sign{_}/#else", "pm"],
        '(' => ["previous open (", "pm"],
        '*' => "[/",
-       '/' => ["start of C comm$sign{_}ent", "pm"],
+       '/' => ["start of C com$sign{_}m$sign{_}ent", "pm"],
        "'" => "[` ^", # vim
        '{' => ["previous open {", "pm"],
        '[' => ["section back$sign{_}ward$sign{_}s", "pm"],
@@ -267,9 +267,9 @@ z => {
        '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 but reindent", "co"],
+       'p' => ["P reind$sign{_}ent$sign{_}ed", "co"],
        'P' => ["[p", "co"],
-       's' => ["last mis$sign{_}spell$sign{_}ing", "po vim7"],
+       's' => ["last missp$sign{_}ell$sign{_}ing", "po vim7"],
        'S' => ["last bad word", "po vim7"],
        'z' => ["start of open fold", "pm vim folding"],
 }, # mode [
@@ -283,7 +283,7 @@ z => {
        ')' => ["next open )", "pm"],
        '*' => "]/",
        "'" => "]` ^", # vim
-       '/' => ["end of C comm$sign{_}ent", "pm"],
+       '/' => ["end of C com$sign{_}m$sign{_}ent", "pm"],
        '[' => [qq'<span style="font-variant:small-caps">section</span> forw$sign{_}ard', "pm"],
        '^['=> ["esc", "mo mode"],
        ']' => ["section forw$sign{_}ard", "pm"],
@@ -298,9 +298,9 @@ z => {
        '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 but reindent", "co"],
+       'p' => ["p reind$sign{_}ent$sign{_}ed", "co"],
        'P' => "[p",
-       's' => ["next mis$sign{_}spell$sign{_}ing", "po vim7"],
+       's' => ["next missp$sign{_}ell$sign{_}ing", "po vim7"],
        'S' => ["next bad word", "po vim7"],
        'z' => ["end of open fold", "pm vim folding"],
 }, # mode ]
@@ -309,23 +309,23 @@ z => {
        desc => "window commands (ctrl-w)",
        lead => $ascii ? "'w"  : "ŵ",
 
-       '<' => ["decrease width", "po"],
-       '>' => ["increase width", "po"],
+       '<' => ["width decr$sign{_}ease", "po"],
+       '>' => ["width incr$sign{_}ease", "po"],
        '^' => ["split, edit alt file", "co"],
        '_' => ["set height", "po"],
-       '+' => ["increase height", "po"],
-       '-' => ["decrease height", "po"],
+       '+' => ["height incr$sign{_}ease", "po"],
+       '-' => ["height decr$sign{_}ease", "po"],
        '=' => ["same height", "po"],
        '^['=> ["esc", "mo mode"],
        ']' => ["split, to tag", "po"],
-       '}' => ["tag in preview", "po"],
+       '}' => ["pre$sign{_}view tag", "po"],
        '|' => ["set width", "po"],
 
-       'b' => ["go to bottom", "po"],
+       'b' => ["go to bot$sign{_}tom", "po"],
        'c' => [":close", "po"],
        '^c'=> ["abort", "mo mode"],
        'd' => ["split, to def$sign{_}inition", "po"],
-       'f' => ["split, edit file", "co"],
+       'f' => ["split, file edit", "co"],
        'F' => ["^wf, jump to line", "co vim7"],
        'g' => ["extra cmds", "me arg mode^wg"],
        'h' => ["go left", "po"],
@@ -339,19 +339,19 @@ z => {
        'L' => ["move far right", "po"],
        'n' => ["open new", "co"],
        'o' => [":only current", "po"],
-       'p' => ["go to previous", "po"],
-       'P' => ["go to preview", "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 vertical$sign{_}ly", "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{_}change", "po"],
-       'z' => ["close preview", "po"],
+       'x' => ["ex$sign{_}chan$sign{_}ge", "po"],
+       'z' => ["close pre$sign{_}view", "po"],
 }, # mode ^w
 
 '^wg' => {
@@ -359,10 +359,10 @@ z => {
        lead => $ascii ? "'wg" : "ŵg",
 
        '^['=> ["esc", "mo mode"],
-       ']' => ["split, :tselect", "po"],
-       '}' => [":ptjump to tag", "po"],
-       '^]'=> ["split, :tjump", "po"],
-       'f' => ["edit file in tab", "co vim7"],
+       ']' => ["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
 
@@ -372,38 +372,38 @@ v => {
        '!' => ["external filter", "co"],
        ':' => ["cmd on range", "mo modec"],
        '<' => ["un$sign{_}indent", "co"],
-       '=' => ["equal$sign{_}prg filt$sign{_}er", "co"],
-       '>' => ["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' => ["extend area", "me modeva arg vim"],
-       'A' => ["append to block", "mi modei vim"], # block
-       'c' => ["replace area", "mi modei vim"],
-       'C' => ["replace lines", "mi modei vim"],
+       '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'=> ["delete area", "co"], # select mode only
+       '^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' => ["keyword$sign{_}prg", "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' => ["replace w/ paste", "co"],
-       'P' => ["replace w/ paste", "co"],
+       'p' => ["repl$sign{_}ace w/ paste", 'co'],
+       'P' => ["repl$sign{_}ace w/ paste", 'co'],
        '^q'=> "^q",
-       'r' => ["replace chars", "co arg"],
+       'r' => ["fill up w/ ch$sign{_}ar", 'co arg'],
        'R' => "vS",  # "might change in future"
        '^s'=> "^s",
        's' => "vc",
-       'S' => ["replace full lines", "mi modei vim"],
+       '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"],
@@ -427,10 +427,10 @@ vg => {
 
        '^['=> ["esc", "mv modev"],
        '?' => ["rot13 encode", "co vim"],
-       'J' => ["join leave spacing", "co vim"],
-       'q' => ["format", "co vim"],
+       'J' => ["join literal$sign{_}ly", 'co vim'],
+       'q' => ["for$sign{_}mat", "co vim"],
        'v' => 'gv',
-       'w' => ["format remain cursor", "co vim7"],
+       'w' => ["for$sign{_}mat still", 'co vim7'],
 }, # mode v g
 
 va => {
@@ -497,9 +497,9 @@ i => {
        '^a' => ["insert prev$sign{_}ious", "co vim"],
        '^b' => ["former i^_", "no vim"],
        '^c' => ["abort, no abbr", "mo mode"],
-       '^d' => ["un$sign{_}indent", "co"],
+       '^d' => ["un$sign{_}ind$sign{_}ent", 'co'],
        '^e' => ["ins char below", "co vim"],
-       '^f' => ["cinkeys: re-indent", "co"],
+       '^f' => ["set indent$sign{_}ation", 'co'],
        '^g' => ["extra cmds", "me modei^g arg"],
        '^h' => ["back$sign{_}space", "co"],
        '^i' => ["tab", "co"],
@@ -508,16 +508,16 @@ i => {
        '^l' => ["<em>im</em> leave ins mode", "mo mode vim"],  # insertmode only
        '^m' => ["enter", "co"],
        '^n' => ["find next keyword", "pm vim"],
-       '^o' => ["execute cmd", "co"],
+       '^o' => ["exec$sign{_}ute cmd", 'co'],
        '^p' => ["find prev keyword", "pm vim"],
        '^q' => "^q",  # or i^v
-       '^r' => ["insert register", "co arg vim"],
+       '^r' => ["insert reg$sign{_}ister", 'co arg vim'],
        '^s' => "^s",
        '^t' => ["indent", "co"],
        '^u' => ["delete line", "co"],
-       '^v' => ["literal or char$sign{_}cod$sign{_}e", "co", "Verbatim or by Value"],
+       '^v' => ["literal or ch$sign{_}ar$sign{_}cod$sign{_}e", 'co', "Verbatim or by Value"],
        '^w' => ["delete word back", "co"],
-       '^x' => ["expand mode", "me arg modei^x vim"],
+       '^x' => ["ex$sign{_}pand mode", 'me arg modei^x vim'],
        '^y' => ["ins char above", "co vim"],
        '^z' => [":sus$sign{_}pend in <em>im</em>", "ci vim"],  # insertmode only
 }, # modei
@@ -537,21 +537,21 @@ i => {
        lead => $ascii ? "'x"  : "x̂",
 
        '^[' => ["esc", "mo mode"], # yes, it really leaves insert mode
-       '^]' => ["complet$sign{_}e tags", "co"],
-       '^d' => ["complet$sign{_}e def$sign{_}ines", "co"],
+       '^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e", 'co'],
+       '^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e", 'co'],
        '^e' => ["window up", "po"],
-       '^f' => ["complet$sign{_}e file$sign{_}name$sign{_}s", "co"],
-       '^i' => ["complet$sign{_}e idents", "co"],
-       '^k' => ["complet$sign{_}e dict", "co"],
-       '^l' => ["complet$sign{_}e lines", "co"],
-       '^n' => ["next complet$sign{_}e", "co"],
-       '^o' => ["omni complet$sign{_}e", "co vim7"],
-       '^p' => ["previou$sign{_}s compl$sign{_}ete", "co"],
-       '^s' => ["spell suggest", "co"],
+       '^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' => ["complet$sign{_}e thes$sign{_}aur$sign{_}us", "co"],
-       '^u' => ["complet$sign{_}e$sign{_}func", "co vim7"],
-       '^v' => ["complet$sign{_}e ex cmd", "co"],
+       '^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