[BACK]Return to mode-key.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/Attic/mode-key.c between version 1.47 and 1.48

version 1.47, 2012/08/27 21:29:23 version 1.48, 2012/10/02 08:16:28
Line 83 
Line 83 
         { MODEKEYCHOICE_SCROLLDOWN, "scroll-down" },          { MODEKEYCHOICE_SCROLLDOWN, "scroll-down" },
         { MODEKEYCHOICE_SCROLLUP, "scroll-up" },          { MODEKEYCHOICE_SCROLLUP, "scroll-up" },
         { MODEKEYCHOICE_STARTNUMBERPREFIX, "start-number-prefix" },          { MODEKEYCHOICE_STARTNUMBERPREFIX, "start-number-prefix" },
           { MODEKEYCHOICE_TREE_COLLAPSE_ALL, "tree-collapse-all" },
           { MODEKEYCHOICE_TREE_EXPAND_ALL, "tree-expand-all" },
           { MODEKEYCHOICE_TREE_TOGGLE, "tree-toggle" },
         { MODEKEYCHOICE_UP, "up" },          { MODEKEYCHOICE_UP, "up" },
   
         { 0, NULL }          { 0, NULL }
Line 138 
Line 141 
   
 /* vi editing keys. */  /* vi editing keys. */
 const struct mode_key_entry mode_key_vi_edit[] = {  const struct mode_key_entry mode_key_vi_edit[] = {
         { '\003' /* C-c */,     0, MODEKEYEDIT_CANCEL },          { '\003' /* C-c */,         0, MODEKEYEDIT_CANCEL },
         { '\010' /* C-h */,     0, MODEKEYEDIT_BACKSPACE },          { '\010' /* C-h */,         0, MODEKEYEDIT_BACKSPACE },
         { '\011' /* Tab */,     0, MODEKEYEDIT_COMPLETE },          { '\011' /* Tab */,         0, MODEKEYEDIT_COMPLETE },
         { '\025' /* C-u */,     0, MODEKEYEDIT_DELETELINE },          { '\025' /* C-u */,         0, MODEKEYEDIT_DELETELINE },
         { '\027' /* C-w */,     0, MODEKEYEDIT_DELETEWORD },          { '\027' /* C-w */,         0, MODEKEYEDIT_DELETEWORD },
         { '\033' /* Escape */,  0, MODEKEYEDIT_SWITCHMODE },          { '\033' /* Escape */,      0, MODEKEYEDIT_SWITCHMODE },
         { '\r',                 0, MODEKEYEDIT_ENTER },          { '\r',                     0, MODEKEYEDIT_ENTER },
         { KEYC_BSPACE,          0, MODEKEYEDIT_BACKSPACE },          { KEYC_BSPACE,              0, MODEKEYEDIT_BACKSPACE },
         { KEYC_DC,              0, MODEKEYEDIT_DELETE },          { KEYC_DC,                  0, MODEKEYEDIT_DELETE },
         { KEYC_DOWN,            0, MODEKEYEDIT_HISTORYDOWN },          { KEYC_DOWN,                0, MODEKEYEDIT_HISTORYDOWN },
         { KEYC_LEFT,            0, MODEKEYEDIT_CURSORLEFT },          { KEYC_LEFT,                0, MODEKEYEDIT_CURSORLEFT },
         { KEYC_RIGHT,           0, MODEKEYEDIT_CURSORRIGHT },          { KEYC_RIGHT,               0, MODEKEYEDIT_CURSORRIGHT },
         { KEYC_UP,              0, MODEKEYEDIT_HISTORYUP },          { KEYC_UP,                  0, MODEKEYEDIT_HISTORYUP },
         { KEYC_HOME,            0, MODEKEYEDIT_STARTOFLINE },          { KEYC_HOME,                0, MODEKEYEDIT_STARTOFLINE },
         { KEYC_END,             0, MODEKEYEDIT_ENDOFLINE },          { KEYC_END,                 0, MODEKEYEDIT_ENDOFLINE },
   
         { '$',                  1, MODEKEYEDIT_ENDOFLINE },          { '$',                      1, MODEKEYEDIT_ENDOFLINE },
         { '0',                  1, MODEKEYEDIT_STARTOFLINE },          { '0',                      1, MODEKEYEDIT_STARTOFLINE },
         { 'A',                  1, MODEKEYEDIT_SWITCHMODEAPPENDLINE },          { 'A',                      1, MODEKEYEDIT_SWITCHMODEAPPENDLINE },
         { 'B',                  1, MODEKEYEDIT_PREVIOUSSPACE },          { 'B',                      1, MODEKEYEDIT_PREVIOUSSPACE },
         { 'D',                  1, MODEKEYEDIT_DELETETOENDOFLINE },          { 'D',                      1, MODEKEYEDIT_DELETETOENDOFLINE },
         { 'E',                  1, MODEKEYEDIT_NEXTSPACEEND },          { 'E',                      1, MODEKEYEDIT_NEXTSPACEEND },
         { 'I',                  1, MODEKEYEDIT_SWITCHMODEBEGINLINE },          { 'I',                      1, MODEKEYEDIT_SWITCHMODEBEGINLINE },
         { 'W',                  1, MODEKEYEDIT_NEXTSPACE },          { 'W',                      1, MODEKEYEDIT_NEXTSPACE },
         { 'X',                  1, MODEKEYEDIT_BACKSPACE },          { 'X',                      1, MODEKEYEDIT_BACKSPACE },
         { '\003' /* C-c */,     1, MODEKEYEDIT_CANCEL },          { '\003' /* C-c */,         1, MODEKEYEDIT_CANCEL },
         { '\010' /* C-h */,     1, MODEKEYEDIT_BACKSPACE },          { '\010' /* C-h */,         1, MODEKEYEDIT_BACKSPACE },
         { '\r',                 1, MODEKEYEDIT_ENTER },          { '\r',                     1, MODEKEYEDIT_ENTER },
         { '^',                  1, MODEKEYEDIT_STARTOFLINE },          { '^',                      1, MODEKEYEDIT_STARTOFLINE },
         { 'a',                  1, MODEKEYEDIT_SWITCHMODEAPPEND },          { 'a',                      1, MODEKEYEDIT_SWITCHMODEAPPEND },
         { 'b',                  1, MODEKEYEDIT_PREVIOUSWORD },          { 'b',                      1, MODEKEYEDIT_PREVIOUSWORD },
         { 'd',                  1, MODEKEYEDIT_DELETELINE },          { 'd',                      1, MODEKEYEDIT_DELETELINE },
         { 'e',                  1, MODEKEYEDIT_NEXTWORDEND },          { 'e',                      1, MODEKEYEDIT_NEXTWORDEND },
         { 'h',                  1, MODEKEYEDIT_CURSORLEFT },          { 'h',                      1, MODEKEYEDIT_CURSORLEFT },
         { 'i',                  1, MODEKEYEDIT_SWITCHMODE },          { 'i',                      1, MODEKEYEDIT_SWITCHMODE },
         { 'j',                  1, MODEKEYEDIT_HISTORYDOWN },          { 'j',                      1, MODEKEYEDIT_HISTORYDOWN },
         { 'k',                  1, MODEKEYEDIT_HISTORYUP },          { 'k',                      1, MODEKEYEDIT_HISTORYUP },
         { 'l',                  1, MODEKEYEDIT_CURSORRIGHT },          { 'l',                      1, MODEKEYEDIT_CURSORRIGHT },
         { 'p',                  1, MODEKEYEDIT_PASTE },          { 'p',                      1, MODEKEYEDIT_PASTE },
         { 'w',                  1, MODEKEYEDIT_NEXTWORD },          { 'w',                      1, MODEKEYEDIT_NEXTWORD },
         { 'x',                  1, MODEKEYEDIT_DELETE },          { 'x',                      1, MODEKEYEDIT_DELETE },
         { KEYC_BSPACE,          1, MODEKEYEDIT_BACKSPACE },          { KEYC_BSPACE,              1, MODEKEYEDIT_BACKSPACE },
         { KEYC_DC,              1, MODEKEYEDIT_DELETE },          { KEYC_DC,                  1, MODEKEYEDIT_DELETE },
         { KEYC_DOWN,            1, MODEKEYEDIT_HISTORYDOWN },          { KEYC_DOWN,                1, MODEKEYEDIT_HISTORYDOWN },
         { KEYC_LEFT,            1, MODEKEYEDIT_CURSORLEFT },          { KEYC_LEFT,                1, MODEKEYEDIT_CURSORLEFT },
         { KEYC_RIGHT,           1, MODEKEYEDIT_CURSORRIGHT },          { KEYC_RIGHT,               1, MODEKEYEDIT_CURSORRIGHT },
         { KEYC_UP,              1, MODEKEYEDIT_HISTORYUP },          { KEYC_UP,                  1, MODEKEYEDIT_HISTORYUP },
   
         { 0,                   -1, 0 }          { 0,                       -1, 0 }
 };  };
 struct mode_key_tree mode_key_tree_vi_edit;  struct mode_key_tree mode_key_tree_vi_edit;
   
 /* vi choice selection keys. */  /* vi choice selection keys. */
 const struct mode_key_entry mode_key_vi_choice[] = {  const struct mode_key_entry mode_key_vi_choice[] = {
         { '0' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '0' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '1' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '1' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '2' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '2' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '3' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '3' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '4' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '4' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '5' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '5' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '6' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '6' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '7' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '7' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '8' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '8' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '9' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '9' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '\002' /* C-b */,     0, MODEKEYCHOICE_PAGEUP },          { '\002' /* C-b */,         0, MODEKEYCHOICE_PAGEUP },
         { '\003' /* C-c */,     0, MODEKEYCHOICE_CANCEL },          { '\003' /* C-c */,         0, MODEKEYCHOICE_CANCEL },
         { '\005' /* C-e */,     0, MODEKEYCHOICE_SCROLLDOWN },          { '\005' /* C-e */,         0, MODEKEYCHOICE_SCROLLDOWN },
         { '\006' /* C-f */,     0, MODEKEYCHOICE_PAGEDOWN },          { '\006' /* C-f */,         0, MODEKEYCHOICE_PAGEDOWN },
         { '\031' /* C-y */,     0, MODEKEYCHOICE_SCROLLUP },          { '\031' /* C-y */,         0, MODEKEYCHOICE_SCROLLUP },
         { '\r',                 0, MODEKEYCHOICE_CHOOSE },          { '\r',                     0, MODEKEYCHOICE_CHOOSE },
         { 'j',                  0, MODEKEYCHOICE_DOWN },          { 'j',                      0, MODEKEYCHOICE_DOWN },
         { 'k',                  0, MODEKEYCHOICE_UP },          { 'k',                      0, MODEKEYCHOICE_UP },
         { 'q',                  0, MODEKEYCHOICE_CANCEL },          { 'q',                      0, MODEKEYCHOICE_CANCEL },
         { KEYC_BSPACE,          0, MODEKEYCHOICE_BACKSPACE },          { KEYC_BSPACE,              0, MODEKEYCHOICE_BACKSPACE },
         { KEYC_DOWN | KEYC_CTRL,0, MODEKEYCHOICE_SCROLLDOWN },          { KEYC_DOWN | KEYC_CTRL,    0, MODEKEYCHOICE_SCROLLDOWN },
         { KEYC_DOWN,            0, MODEKEYCHOICE_DOWN },          { KEYC_DOWN,                0, MODEKEYCHOICE_DOWN },
         { KEYC_NPAGE,           0, MODEKEYCHOICE_PAGEDOWN },          { KEYC_NPAGE,               0, MODEKEYCHOICE_PAGEDOWN },
         { KEYC_PPAGE,           0, MODEKEYCHOICE_PAGEUP },          { KEYC_PPAGE,               0, MODEKEYCHOICE_PAGEUP },
         { KEYC_UP | KEYC_CTRL,  0, MODEKEYCHOICE_SCROLLUP },          { KEYC_UP | KEYC_CTRL,      0, MODEKEYCHOICE_SCROLLUP },
         { KEYC_UP,              0, MODEKEYCHOICE_UP },          { KEYC_UP,                  0, MODEKEYCHOICE_UP },
           { ' ',                      0, MODEKEYCHOICE_TREE_TOGGLE },
           { KEYC_LEFT | KEYC_CTRL,    0, MODEKEYCHOICE_TREE_COLLAPSE_ALL },
           { KEYC_RIGHT | KEYC_CTRL,   0, MODEKEYCHOICE_TREE_EXPAND_ALL },
   
         { 0,                    -1, 0 }          { 0,                       -1, 0 }
 };  };
 struct mode_key_tree mode_key_tree_vi_choice;  struct mode_key_tree mode_key_tree_vi_choice;
   
 /* vi copy mode keys. */  /* vi copy mode keys. */
 const struct mode_key_entry mode_key_vi_copy[] = {  const struct mode_key_entry mode_key_vi_copy[] = {
         { ' ',                  0, MODEKEYCOPY_STARTSELECTION },          { ' ',                      0, MODEKEYCOPY_STARTSELECTION },
         { '$',                  0, MODEKEYCOPY_ENDOFLINE },          { '$',                      0, MODEKEYCOPY_ENDOFLINE },
         { ',',                  0, MODEKEYCOPY_JUMPREVERSE },          { ',',                      0, MODEKEYCOPY_JUMPREVERSE },
         { ';',                  0, MODEKEYCOPY_JUMPAGAIN },          { ';',                      0, MODEKEYCOPY_JUMPAGAIN },
         { '/',                  0, MODEKEYCOPY_SEARCHDOWN },          { '/',                      0, MODEKEYCOPY_SEARCHDOWN },
         { '0',                  0, MODEKEYCOPY_STARTOFLINE },          { '0',                      0, MODEKEYCOPY_STARTOFLINE },
         { '1',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '1',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '2',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '2',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '3',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '3',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '4',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '4',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '5',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '5',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '6',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '6',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '7',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '7',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '8',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '8',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '9',                  0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '9',                      0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { ':',                  0, MODEKEYCOPY_GOTOLINE },          { ':',                      0, MODEKEYCOPY_GOTOLINE },
         { '?',                  0, MODEKEYCOPY_SEARCHUP },          { '?',                      0, MODEKEYCOPY_SEARCHUP },
         { 'B',                  0, MODEKEYCOPY_PREVIOUSSPACE },          { 'B',                      0, MODEKEYCOPY_PREVIOUSSPACE },
         { 'D',                  0, MODEKEYCOPY_COPYENDOFLINE },          { 'D',                      0, MODEKEYCOPY_COPYENDOFLINE },
         { 'E',                  0, MODEKEYCOPY_NEXTSPACEEND },          { 'E',                      0, MODEKEYCOPY_NEXTSPACEEND },
         { 'F',                  0, MODEKEYCOPY_JUMPBACK },          { 'F',                      0, MODEKEYCOPY_JUMPBACK },
         { 'G',                  0, MODEKEYCOPY_HISTORYBOTTOM },          { 'G',                      0, MODEKEYCOPY_HISTORYBOTTOM },
         { 'H',                  0, MODEKEYCOPY_TOPLINE },          { 'H',                      0, MODEKEYCOPY_TOPLINE },
         { 'J',                  0, MODEKEYCOPY_SCROLLDOWN },          { 'J',                      0, MODEKEYCOPY_SCROLLDOWN },
         { 'K',                  0, MODEKEYCOPY_SCROLLUP },          { 'K',                      0, MODEKEYCOPY_SCROLLUP },
         { 'L',                  0, MODEKEYCOPY_BOTTOMLINE },          { 'L',                      0, MODEKEYCOPY_BOTTOMLINE },
         { 'M',                  0, MODEKEYCOPY_MIDDLELINE },          { 'M',                      0, MODEKEYCOPY_MIDDLELINE },
         { 'N',                  0, MODEKEYCOPY_SEARCHREVERSE },          { 'N',                      0, MODEKEYCOPY_SEARCHREVERSE },
         { 'T',                  0, MODEKEYCOPY_JUMPTOBACK },          { 'T',                      0, MODEKEYCOPY_JUMPTOBACK },
         { 'W',                  0, MODEKEYCOPY_NEXTSPACE },          { 'W',                      0, MODEKEYCOPY_NEXTSPACE },
         { '\002' /* C-b */,     0, MODEKEYCOPY_PREVIOUSPAGE },          { '\002' /* C-b */,         0, MODEKEYCOPY_PREVIOUSPAGE },
         { '\003' /* C-c */,     0, MODEKEYCOPY_CANCEL },          { '\003' /* C-c */,         0, MODEKEYCOPY_CANCEL },
         { '\004' /* C-d */,     0, MODEKEYCOPY_HALFPAGEDOWN },          { '\004' /* C-d */,         0, MODEKEYCOPY_HALFPAGEDOWN },
         { '\005' /* C-e */,     0, MODEKEYCOPY_SCROLLDOWN },          { '\005' /* C-e */,         0, MODEKEYCOPY_SCROLLDOWN },
         { '\006' /* C-f */,     0, MODEKEYCOPY_NEXTPAGE },          { '\006' /* C-f */,         0, MODEKEYCOPY_NEXTPAGE },
         { '\010' /* C-h */,     0, MODEKEYCOPY_LEFT },          { '\010' /* C-h */,         0, MODEKEYCOPY_LEFT },
         { '\025' /* C-u */,     0, MODEKEYCOPY_HALFPAGEUP },          { '\025' /* C-u */,         0, MODEKEYCOPY_HALFPAGEUP },
         { '\031' /* C-y */,     0, MODEKEYCOPY_SCROLLUP },          { '\031' /* C-y */,         0, MODEKEYCOPY_SCROLLUP },
         { '\033' /* Escape */,  0, MODEKEYCOPY_CLEARSELECTION },          { '\033' /* Escape */,      0, MODEKEYCOPY_CLEARSELECTION },
         { '\r',                 0, MODEKEYCOPY_COPYSELECTION },          { '\r',                     0, MODEKEYCOPY_COPYSELECTION },
         { '^',                  0, MODEKEYCOPY_BACKTOINDENTATION },          { '^',                      0, MODEKEYCOPY_BACKTOINDENTATION },
         { 'b',                  0, MODEKEYCOPY_PREVIOUSWORD },          { 'b',                      0, MODEKEYCOPY_PREVIOUSWORD },
         { 'e',                  0, MODEKEYCOPY_NEXTWORDEND },          { 'e',                      0, MODEKEYCOPY_NEXTWORDEND },
         { 'f',                  0, MODEKEYCOPY_JUMP },          { 'f',                      0, MODEKEYCOPY_JUMP },
         { 'g',                  0, MODEKEYCOPY_HISTORYTOP },          { 'g',                      0, MODEKEYCOPY_HISTORYTOP },
         { 'h',                  0, MODEKEYCOPY_LEFT },          { 'h',                      0, MODEKEYCOPY_LEFT },
         { 'j',                  0, MODEKEYCOPY_DOWN },          { 'j',                      0, MODEKEYCOPY_DOWN },
         { 'k',                  0, MODEKEYCOPY_UP },          { 'k',                      0, MODEKEYCOPY_UP },
         { 'l',                  0, MODEKEYCOPY_RIGHT },          { 'l',                      0, MODEKEYCOPY_RIGHT },
         { 'n',                  0, MODEKEYCOPY_SEARCHAGAIN },          { 'n',                      0, MODEKEYCOPY_SEARCHAGAIN },
         { 't',                  0, MODEKEYCOPY_JUMPTO },          { 't',                      0, MODEKEYCOPY_JUMPTO },
         { 'q',                  0, MODEKEYCOPY_CANCEL },          { 'q',                      0, MODEKEYCOPY_CANCEL },
         { 'v',                  0, MODEKEYCOPY_RECTANGLETOGGLE },          { 'v',                      0, MODEKEYCOPY_RECTANGLETOGGLE },
         { 'w',                  0, MODEKEYCOPY_NEXTWORD },          { 'w',                      0, MODEKEYCOPY_NEXTWORD },
         { KEYC_BSPACE,          0, MODEKEYCOPY_LEFT },          { KEYC_BSPACE,              0, MODEKEYCOPY_LEFT },
         { KEYC_DOWN | KEYC_CTRL,0, MODEKEYCOPY_SCROLLDOWN },          { KEYC_DOWN | KEYC_CTRL,    0, MODEKEYCOPY_SCROLLDOWN },
         { KEYC_DOWN,            0, MODEKEYCOPY_DOWN },          { KEYC_DOWN,                0, MODEKEYCOPY_DOWN },
         { KEYC_LEFT,            0, MODEKEYCOPY_LEFT },          { KEYC_LEFT,                0, MODEKEYCOPY_LEFT },
         { KEYC_NPAGE,           0, MODEKEYCOPY_NEXTPAGE },          { KEYC_NPAGE,               0, MODEKEYCOPY_NEXTPAGE },
         { KEYC_PPAGE,           0, MODEKEYCOPY_PREVIOUSPAGE },          { KEYC_PPAGE,               0, MODEKEYCOPY_PREVIOUSPAGE },
         { KEYC_RIGHT,           0, MODEKEYCOPY_RIGHT },          { KEYC_RIGHT,               0, MODEKEYCOPY_RIGHT },
         { KEYC_UP | KEYC_CTRL,  0, MODEKEYCOPY_SCROLLUP },          { KEYC_UP | KEYC_CTRL,      0, MODEKEYCOPY_SCROLLUP },
         { KEYC_UP,              0, MODEKEYCOPY_UP },          { KEYC_UP,                  0, MODEKEYCOPY_UP },
   
         { 0,                    -1, 0 }          { 0,                       -1, 0 }
 };  };
 struct mode_key_tree mode_key_tree_vi_copy;  struct mode_key_tree mode_key_tree_vi_copy;
   
 /* emacs editing keys. */  /* emacs editing keys. */
 const struct mode_key_entry mode_key_emacs_edit[] = {  const struct mode_key_entry mode_key_emacs_edit[] = {
         { '\001' /* C-a */,     0, MODEKEYEDIT_STARTOFLINE },          { '\001' /* C-a */,         0, MODEKEYEDIT_STARTOFLINE },
         { '\002' /* C-b */,     0, MODEKEYEDIT_CURSORLEFT },          { '\002' /* C-b */,         0, MODEKEYEDIT_CURSORLEFT },
         { '\003' /* C-c */,     0, MODEKEYEDIT_CANCEL },          { '\003' /* C-c */,         0, MODEKEYEDIT_CANCEL },
         { '\004' /* C-d */,     0, MODEKEYEDIT_DELETE },          { '\004' /* C-d */,         0, MODEKEYEDIT_DELETE },
         { '\005' /* C-e */,     0, MODEKEYEDIT_ENDOFLINE },          { '\005' /* C-e */,         0, MODEKEYEDIT_ENDOFLINE },
         { '\006' /* C-f */,     0, MODEKEYEDIT_CURSORRIGHT },          { '\006' /* C-f */,         0, MODEKEYEDIT_CURSORRIGHT },
         { '\010' /* C-H */,     0, MODEKEYEDIT_BACKSPACE },          { '\010' /* C-H */,         0, MODEKEYEDIT_BACKSPACE },
         { '\011' /* Tab */,     0, MODEKEYEDIT_COMPLETE },          { '\011' /* Tab */,         0, MODEKEYEDIT_COMPLETE },
         { '\013' /* C-k */,     0, MODEKEYEDIT_DELETETOENDOFLINE },          { '\013' /* C-k */,         0, MODEKEYEDIT_DELETETOENDOFLINE },
         { '\016' /* C-n */,     0, MODEKEYEDIT_HISTORYDOWN },          { '\016' /* C-n */,         0, MODEKEYEDIT_HISTORYDOWN },
         { '\020' /* C-p */,     0, MODEKEYEDIT_HISTORYUP },          { '\020' /* C-p */,         0, MODEKEYEDIT_HISTORYUP },
         { '\024' /* C-t */,     0, MODEKEYEDIT_TRANSPOSECHARS },          { '\024' /* C-t */,         0, MODEKEYEDIT_TRANSPOSECHARS },
         { '\025' /* C-u */,     0, MODEKEYEDIT_DELETELINE },          { '\025' /* C-u */,         0, MODEKEYEDIT_DELETELINE },
         { '\027' /* C-w */,     0, MODEKEYEDIT_DELETEWORD },          { '\027' /* C-w */,         0, MODEKEYEDIT_DELETEWORD },
         { '\031' /* C-y */,     0, MODEKEYEDIT_PASTE },          { '\031' /* C-y */,         0, MODEKEYEDIT_PASTE },
         { '\033' /* Escape */,  0, MODEKEYEDIT_CANCEL },          { '\033' /* Escape */,      0, MODEKEYEDIT_CANCEL },
         { '\r',                 0, MODEKEYEDIT_ENTER },          { '\r',                     0, MODEKEYEDIT_ENTER },
         { 'b' | KEYC_ESCAPE,    0, MODEKEYEDIT_PREVIOUSWORD },          { 'b' | KEYC_ESCAPE,        0, MODEKEYEDIT_PREVIOUSWORD },
         { 'f' | KEYC_ESCAPE,    0, MODEKEYEDIT_NEXTWORDEND },          { 'f' | KEYC_ESCAPE,        0, MODEKEYEDIT_NEXTWORDEND },
         { 'm' | KEYC_ESCAPE,    0, MODEKEYEDIT_STARTOFLINE },          { 'm' | KEYC_ESCAPE,        0, MODEKEYEDIT_STARTOFLINE },
         { KEYC_BSPACE,          0, MODEKEYEDIT_BACKSPACE },          { KEYC_BSPACE,              0, MODEKEYEDIT_BACKSPACE },
         { KEYC_DC,              0, MODEKEYEDIT_DELETE },          { KEYC_DC,                  0, MODEKEYEDIT_DELETE },
         { KEYC_DOWN,            0, MODEKEYEDIT_HISTORYDOWN },          { KEYC_DOWN,                0, MODEKEYEDIT_HISTORYDOWN },
         { KEYC_LEFT,            0, MODEKEYEDIT_CURSORLEFT },          { KEYC_LEFT,                0, MODEKEYEDIT_CURSORLEFT },
         { KEYC_RIGHT,           0, MODEKEYEDIT_CURSORRIGHT },          { KEYC_RIGHT,               0, MODEKEYEDIT_CURSORRIGHT },
         { KEYC_UP,              0, MODEKEYEDIT_HISTORYUP },          { KEYC_UP,                  0, MODEKEYEDIT_HISTORYUP },
         { KEYC_HOME,            0, MODEKEYEDIT_STARTOFLINE },          { KEYC_HOME,                0, MODEKEYEDIT_STARTOFLINE },
         { KEYC_END,             0, MODEKEYEDIT_ENDOFLINE },          { KEYC_END,                 0, MODEKEYEDIT_ENDOFLINE },
   
         { 0,                   -1, 0 }          { 0,                       -1, 0 }
 };  };
 struct mode_key_tree mode_key_tree_emacs_edit;  struct mode_key_tree mode_key_tree_emacs_edit;
   
 /* emacs choice selection keys. */  /* emacs choice selection keys. */
 const struct mode_key_entry mode_key_emacs_choice[] = {  const struct mode_key_entry mode_key_emacs_choice[] = {
         { '0' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '0' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '1' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '1' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '2' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '2' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '3' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '3' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '4' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '4' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '5' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '5' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '6' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '6' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '7' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '7' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '8' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '8' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '9' | KEYC_ESCAPE,    0, MODEKEYCHOICE_STARTNUMBERPREFIX },          { '9' | KEYC_ESCAPE,        0, MODEKEYCHOICE_STARTNUMBERPREFIX },
         { '\003' /* C-c */,     0, MODEKEYCHOICE_CANCEL },          { '\003' /* C-c */,         0, MODEKEYCHOICE_CANCEL },
         { '\016' /* C-n */,     0, MODEKEYCHOICE_DOWN },          { '\016' /* C-n */,         0, MODEKEYCHOICE_DOWN },
         { '\020' /* C-p */,     0, MODEKEYCHOICE_UP },          { '\020' /* C-p */,         0, MODEKEYCHOICE_UP },
         { '\026' /* C-v */,     0, MODEKEYCHOICE_PAGEDOWN },          { '\026' /* C-v */,         0, MODEKEYCHOICE_PAGEDOWN },
         { '\033' /* Escape */,  0, MODEKEYCHOICE_CANCEL },          { '\033' /* Escape */,      0, MODEKEYCHOICE_CANCEL },
         { '\r',                 0, MODEKEYCHOICE_CHOOSE },          { '\r',                     0, MODEKEYCHOICE_CHOOSE },
         { 'q',                  0, MODEKEYCHOICE_CANCEL },          { 'q',                      0, MODEKEYCHOICE_CANCEL },
         { 'v' | KEYC_ESCAPE,    0, MODEKEYCHOICE_PAGEUP },          { 'v' | KEYC_ESCAPE,        0, MODEKEYCHOICE_PAGEUP },
         { KEYC_BSPACE,          0, MODEKEYCHOICE_BACKSPACE },          { KEYC_BSPACE,              0, MODEKEYCHOICE_BACKSPACE },
         { KEYC_DOWN | KEYC_CTRL,0, MODEKEYCHOICE_SCROLLDOWN },          { KEYC_DOWN | KEYC_CTRL,    0, MODEKEYCHOICE_SCROLLDOWN },
         { KEYC_DOWN,            0, MODEKEYCHOICE_DOWN },          { KEYC_DOWN,                0, MODEKEYCHOICE_DOWN },
         { KEYC_NPAGE,           0, MODEKEYCHOICE_PAGEDOWN },          { KEYC_NPAGE,               0, MODEKEYCHOICE_PAGEDOWN },
         { KEYC_PPAGE,           0, MODEKEYCHOICE_PAGEUP },          { KEYC_PPAGE,               0, MODEKEYCHOICE_PAGEUP },
         { KEYC_UP | KEYC_CTRL,  0, MODEKEYCHOICE_SCROLLUP },          { KEYC_UP | KEYC_CTRL,      0, MODEKEYCHOICE_SCROLLUP },
         { KEYC_UP,              0, MODEKEYCHOICE_UP },          { KEYC_UP,                  0, MODEKEYCHOICE_UP },
           { ' ',                      0, MODEKEYCHOICE_TREE_TOGGLE },
           { KEYC_LEFT,                0, MODEKEYCHOICE_TREE_COLLAPSE },
           { KEYC_RIGHT,               0, MODEKEYCHOICE_TREE_EXPAND },
           { KEYC_LEFT | KEYC_CTRL,    0, MODEKEYCHOICE_TREE_COLLAPSE_ALL },
           { KEYC_RIGHT | KEYC_CTRL,   0, MODEKEYCHOICE_TREE_EXPAND_ALL },
   
         { 0,                    -1, 0 }          { 0,                       -1, 0 }
 };  };
 struct mode_key_tree mode_key_tree_emacs_choice;  struct mode_key_tree mode_key_tree_emacs_choice;
   
 /* emacs copy mode keys. */  /* emacs copy mode keys. */
 const struct mode_key_entry mode_key_emacs_copy[] = {  const struct mode_key_entry mode_key_emacs_copy[] = {
         { ' ',                  0, MODEKEYCOPY_NEXTPAGE },          { ' ',                      0, MODEKEYCOPY_NEXTPAGE },
         { ',',                  0, MODEKEYCOPY_JUMPREVERSE },          { ',',                      0, MODEKEYCOPY_JUMPREVERSE },
         { ';',                  0, MODEKEYCOPY_JUMPAGAIN },          { ';',                      0, MODEKEYCOPY_JUMPAGAIN },
         { '1' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '1' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '2' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '2' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '3' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '3' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '4' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '4' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '5' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '5' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '6' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '6' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '7' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '7' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '8' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '8' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '9' | KEYC_ESCAPE,    0, MODEKEYCOPY_STARTNUMBERPREFIX },          { '9' | KEYC_ESCAPE,        0, MODEKEYCOPY_STARTNUMBERPREFIX },
         { '<' | KEYC_ESCAPE,    0, MODEKEYCOPY_HISTORYTOP },          { '<' | KEYC_ESCAPE,        0, MODEKEYCOPY_HISTORYTOP },
         { '>' | KEYC_ESCAPE,    0, MODEKEYCOPY_HISTORYBOTTOM },          { '>' | KEYC_ESCAPE,        0, MODEKEYCOPY_HISTORYBOTTOM },
         { 'F',                  0, MODEKEYCOPY_JUMPBACK },          { 'F',                      0, MODEKEYCOPY_JUMPBACK },
         { 'N',                  0, MODEKEYCOPY_SEARCHREVERSE },          { 'N',                      0, MODEKEYCOPY_SEARCHREVERSE },
         { 'R' | KEYC_ESCAPE,    0, MODEKEYCOPY_TOPLINE },          { 'R' | KEYC_ESCAPE,        0, MODEKEYCOPY_TOPLINE },
         { 'R',                  0, MODEKEYCOPY_RECTANGLETOGGLE },          { 'R',                      0, MODEKEYCOPY_RECTANGLETOGGLE },
         { 'T',                  0, MODEKEYCOPY_JUMPTOBACK },          { 'T',                      0, MODEKEYCOPY_JUMPTOBACK },
         { '\000' /* C-Space */, 0, MODEKEYCOPY_STARTSELECTION },          { '\000' /* C-Space */,     0, MODEKEYCOPY_STARTSELECTION },
         { '\001' /* C-a */,     0, MODEKEYCOPY_STARTOFLINE },          { '\001' /* C-a */,         0, MODEKEYCOPY_STARTOFLINE },
         { '\002' /* C-b */,     0, MODEKEYCOPY_LEFT },          { '\002' /* C-b */,         0, MODEKEYCOPY_LEFT },
         { '\003' /* C-c */,     0, MODEKEYCOPY_CANCEL },          { '\003' /* C-c */,         0, MODEKEYCOPY_CANCEL },
         { '\005' /* C-e */,     0, MODEKEYCOPY_ENDOFLINE },          { '\005' /* C-e */,         0, MODEKEYCOPY_ENDOFLINE },
         { '\006' /* C-f */,     0, MODEKEYCOPY_RIGHT },          { '\006' /* C-f */,         0, MODEKEYCOPY_RIGHT },
         { '\007' /* C-g */,     0, MODEKEYCOPY_CLEARSELECTION },          { '\007' /* C-g */,         0, MODEKEYCOPY_CLEARSELECTION },
         { '\013' /* C-k */,     0, MODEKEYCOPY_COPYENDOFLINE },          { '\013' /* C-k */,         0, MODEKEYCOPY_COPYENDOFLINE },
         { '\016' /* C-n */,     0, MODEKEYCOPY_DOWN },          { '\016' /* C-n */,         0, MODEKEYCOPY_DOWN },
         { '\020' /* C-p */,     0, MODEKEYCOPY_UP },          { '\020' /* C-p */,         0, MODEKEYCOPY_UP },
         { '\022' /* C-r */,     0, MODEKEYCOPY_SEARCHUP },          { '\022' /* C-r */,         0, MODEKEYCOPY_SEARCHUP },
         { '\023' /* C-s */,     0, MODEKEYCOPY_SEARCHDOWN },          { '\023' /* C-s */,         0, MODEKEYCOPY_SEARCHDOWN },
         { '\026' /* C-v */,     0, MODEKEYCOPY_NEXTPAGE },          { '\026' /* C-v */,         0, MODEKEYCOPY_NEXTPAGE },
         { '\027' /* C-w */,     0, MODEKEYCOPY_COPYSELECTION },          { '\027' /* C-w */,         0, MODEKEYCOPY_COPYSELECTION },
         { '\033' /* Escape */,  0, MODEKEYCOPY_CANCEL },          { '\033' /* Escape */,      0, MODEKEYCOPY_CANCEL },
         { 'N',                  0, MODEKEYCOPY_SEARCHREVERSE },          { 'N',                      0, MODEKEYCOPY_SEARCHREVERSE },
         { 'b' | KEYC_ESCAPE,    0, MODEKEYCOPY_PREVIOUSWORD },          { 'b' | KEYC_ESCAPE,        0, MODEKEYCOPY_PREVIOUSWORD },
         { 'f',                  0, MODEKEYCOPY_JUMP },          { 'f',                      0, MODEKEYCOPY_JUMP },
         { 'f' | KEYC_ESCAPE,    0, MODEKEYCOPY_NEXTWORDEND },          { 'f' | KEYC_ESCAPE,        0, MODEKEYCOPY_NEXTWORDEND },
         { 'g',                  0, MODEKEYCOPY_GOTOLINE },          { 'g',                      0, MODEKEYCOPY_GOTOLINE },
         { 'm' | KEYC_ESCAPE,    0, MODEKEYCOPY_BACKTOINDENTATION },          { 'm' | KEYC_ESCAPE,        0, MODEKEYCOPY_BACKTOINDENTATION },
         { 'n',                  0, MODEKEYCOPY_SEARCHAGAIN },          { 'n',                      0, MODEKEYCOPY_SEARCHAGAIN },
         { 'q',                  0, MODEKEYCOPY_CANCEL },          { 'q',                      0, MODEKEYCOPY_CANCEL },
         { 'r' | KEYC_ESCAPE,    0, MODEKEYCOPY_MIDDLELINE },          { 'r' | KEYC_ESCAPE,        0, MODEKEYCOPY_MIDDLELINE },
         { 't',                  0, MODEKEYCOPY_JUMPTO },          { 't',                      0, MODEKEYCOPY_JUMPTO },
         { 'v' | KEYC_ESCAPE,    0, MODEKEYCOPY_PREVIOUSPAGE },          { 'v' | KEYC_ESCAPE,        0, MODEKEYCOPY_PREVIOUSPAGE },
         { 'w' | KEYC_ESCAPE,    0, MODEKEYCOPY_COPYSELECTION },          { 'w' | KEYC_ESCAPE,        0, MODEKEYCOPY_COPYSELECTION },
         { KEYC_DOWN | KEYC_CTRL,0, MODEKEYCOPY_SCROLLDOWN },          { KEYC_DOWN | KEYC_CTRL,    0, MODEKEYCOPY_SCROLLDOWN },
         { KEYC_DOWN | KEYC_ESCAPE, 0, MODEKEYCOPY_HALFPAGEDOWN },          { KEYC_DOWN | KEYC_ESCAPE,  0, MODEKEYCOPY_HALFPAGEDOWN },
         { KEYC_DOWN,            0, MODEKEYCOPY_DOWN },          { KEYC_DOWN,                0, MODEKEYCOPY_DOWN },
         { KEYC_LEFT,            0, MODEKEYCOPY_LEFT },          { KEYC_LEFT,                0, MODEKEYCOPY_LEFT },
         { KEYC_NPAGE,           0, MODEKEYCOPY_NEXTPAGE },          { KEYC_NPAGE,               0, MODEKEYCOPY_NEXTPAGE },
         { KEYC_PPAGE,           0, MODEKEYCOPY_PREVIOUSPAGE },          { KEYC_PPAGE,               0, MODEKEYCOPY_PREVIOUSPAGE },
         { KEYC_RIGHT,           0, MODEKEYCOPY_RIGHT },          { KEYC_RIGHT,               0, MODEKEYCOPY_RIGHT },
         { KEYC_UP | KEYC_CTRL,  0, MODEKEYCOPY_SCROLLUP },          { KEYC_UP | KEYC_CTRL,      0, MODEKEYCOPY_SCROLLUP },
         { KEYC_UP | KEYC_ESCAPE, 0, MODEKEYCOPY_HALFPAGEUP },          { KEYC_UP | KEYC_ESCAPE,    0, MODEKEYCOPY_HALFPAGEUP },
         { KEYC_UP,              0, MODEKEYCOPY_UP },          { KEYC_UP,                  0, MODEKEYCOPY_UP },
   
         { 0,                    -1, 0 }          { 0,                       -1, 0 }
 };  };
 struct mode_key_tree mode_key_tree_emacs_copy;  struct mode_key_tree mode_key_tree_emacs_copy;
   

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48