diff options
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 380 |
1 files changed, 190 insertions, 190 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index dbd8e153a8..92b1cf2d55 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -152,196 +152,196 @@ static const struct nv_cmd { short cmd_arg; /* value for ca.arg */ } nv_cmds[] = { - {NUL, nv_error, 0, 0}, - {Ctrl_A, nv_addsub, 0, 0}, - {Ctrl_B, nv_page, NV_STS, BACKWARD}, - {Ctrl_C, nv_esc, 0, true}, - {Ctrl_D, nv_halfpage, 0, 0}, - {Ctrl_E, nv_scroll_line, 0, true}, - {Ctrl_F, nv_page, NV_STS, FORWARD}, - {Ctrl_G, nv_ctrlg, 0, 0}, - {Ctrl_H, nv_ctrlh, 0, 0}, - {Ctrl_I, nv_pcmark, 0, 0}, - {NL, nv_down, 0, false}, - {Ctrl_K, nv_error, 0, 0}, - {Ctrl_L, nv_clear, 0, 0}, - {Ctrl_M, nv_down, 0, true}, - {Ctrl_N, nv_down, NV_STS, false}, - {Ctrl_O, nv_ctrlo, 0, 0}, - {Ctrl_P, nv_up, NV_STS, false}, - {Ctrl_Q, nv_visual, 0, false}, - {Ctrl_R, nv_redo, 0, 0}, - {Ctrl_S, nv_ignore, 0, 0}, - {Ctrl_T, nv_tagpop, NV_NCW, 0}, - {Ctrl_U, nv_halfpage, 0, 0}, - {Ctrl_V, nv_visual, 0, false}, - {'V', nv_visual, 0, false}, - {'v', nv_visual, 0, false}, - {Ctrl_W, nv_window, 0, 0}, - {Ctrl_X, nv_addsub, 0, 0}, - {Ctrl_Y, nv_scroll_line, 0, false}, - {Ctrl_Z, nv_suspend, 0, 0}, - {ESC, nv_esc, 0, false}, - {Ctrl_BSL, nv_normal, NV_NCH_ALW, 0}, - {Ctrl_RSB, nv_ident, NV_NCW, 0}, - {Ctrl_HAT, nv_hat, NV_NCW, 0}, - {Ctrl__, nv_error, 0, 0}, - {' ', nv_right, 0, 0}, - {'!', nv_operator, 0, 0}, - {'"', nv_regname, NV_NCH_NOP|NV_KEEPREG, 0}, - {'#', nv_ident, 0, 0}, - {'$', nv_dollar, 0, 0}, - {'%', nv_percent, 0, 0}, - {'&', nv_optrans, 0, 0}, - {'\'', nv_gomark, NV_NCH_ALW, true}, - {'(', nv_brace, 0, BACKWARD}, - {')', nv_brace, 0, FORWARD}, - {'*', nv_ident, 0, 0}, - {'+', nv_down, 0, true}, - {',', nv_csearch, 0, true}, - {'-', nv_up, 0, true}, - {'.', nv_dot, NV_KEEPREG, 0}, - {'/', nv_search, 0, false}, - {'0', nv_beginline, 0, 0}, - {'1', nv_ignore, 0, 0}, - {'2', nv_ignore, 0, 0}, - {'3', nv_ignore, 0, 0}, - {'4', nv_ignore, 0, 0}, - {'5', nv_ignore, 0, 0}, - {'6', nv_ignore, 0, 0}, - {'7', nv_ignore, 0, 0}, - {'8', nv_ignore, 0, 0}, - {'9', nv_ignore, 0, 0}, - {':', nv_colon, 0, 0}, - {';', nv_csearch, 0, false}, - {'<', nv_operator, NV_RL, 0}, - {'=', nv_operator, 0, 0}, - {'>', nv_operator, NV_RL, 0}, - {'?', nv_search, 0, false}, - {'@', nv_at, NV_NCH_NOP, false}, - {'A', nv_edit, 0, 0}, - {'B', nv_bck_word, 0, 1}, - {'C', nv_abbrev, NV_KEEPREG, 0}, - {'D', nv_abbrev, NV_KEEPREG, 0}, - {'E', nv_wordcmd, 0, true}, - {'F', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD}, - {'G', nv_goto, 0, true}, - {'H', nv_scroll, 0, 0}, - {'I', nv_edit, 0, 0}, - {'J', nv_join, 0, 0}, - {'K', nv_ident, 0, 0}, - {'L', nv_scroll, 0, 0}, - {'M', nv_scroll, 0, 0}, - {'N', nv_next, 0, SEARCH_REV}, - {'O', nv_open, 0, 0}, - {'P', nv_put, 0, 0}, - {'Q', nv_exmode, NV_NCW, 0}, - {'R', nv_Replace, 0, false}, - {'S', nv_subst, NV_KEEPREG, 0}, - {'T', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD}, - {'U', nv_Undo, 0, 0}, - {'W', nv_wordcmd, 0, true}, - {'X', nv_abbrev, NV_KEEPREG, 0}, - {'Y', nv_abbrev, NV_KEEPREG, 0}, - {'Z', nv_Zet, NV_NCH_NOP|NV_NCW, 0}, - {'[', nv_brackets, NV_NCH_ALW, BACKWARD}, - {'\\', nv_error, 0, 0}, - {']', nv_brackets, NV_NCH_ALW, FORWARD}, - {'^', nv_beginline, 0, BL_WHITE | BL_FIX}, - {'_', nv_lineop, 0, 0}, - {'`', nv_gomark, NV_NCH_ALW, false}, - {'a', nv_edit, NV_NCH, 0}, - {'b', nv_bck_word, 0, 0}, - {'c', nv_operator, 0, 0}, - {'d', nv_operator, 0, 0}, - {'e', nv_wordcmd, 0, false}, - {'f', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD}, - {'g', nv_g_cmd, NV_NCH_ALW, false}, - {'h', nv_left, NV_RL, 0}, - {'i', nv_edit, NV_NCH, 0}, - {'j', nv_down, 0, false}, - {'k', nv_up, 0, false}, - {'l', nv_right, NV_RL, 0}, - {'m', nv_mark, NV_NCH_NOP, 0}, - {'n', nv_next, 0, 0}, - {'o', nv_open, 0, 0}, - {'p', nv_put, 0, 0}, - {'q', nv_record, NV_NCH, 0}, - {'r', nv_replace, NV_NCH_NOP|NV_LANG, 0}, - {'s', nv_subst, NV_KEEPREG, 0}, - {'t', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD}, - {'u', nv_undo, 0, 0}, - {'w', nv_wordcmd, 0, false}, - {'x', nv_abbrev, NV_KEEPREG, 0}, - {'y', nv_operator, 0, 0}, - {'z', nv_zet, NV_NCH_ALW, 0}, - {'{', nv_findpar, 0, BACKWARD}, - {'|', nv_pipe, 0, 0}, - {'}', nv_findpar, 0, FORWARD}, - {'~', nv_tilde, 0, 0}, - - /* pound sign */ - {POUND, nv_ident, 0, 0}, - {K_MOUSEUP, nv_mousescroll, 0, MSCR_UP}, - {K_MOUSEDOWN, nv_mousescroll, 0, MSCR_DOWN}, - {K_MOUSELEFT, nv_mousescroll, 0, MSCR_LEFT}, - {K_MOUSERIGHT, nv_mousescroll, 0, MSCR_RIGHT}, - {K_LEFTMOUSE, nv_mouse, 0, 0}, - {K_LEFTMOUSE_NM, nv_mouse, 0, 0}, - {K_LEFTDRAG, nv_mouse, 0, 0}, - {K_LEFTRELEASE, nv_mouse, 0, 0}, - {K_LEFTRELEASE_NM, nv_mouse, 0, 0}, - {K_MIDDLEMOUSE, nv_mouse, 0, 0}, - {K_MIDDLEDRAG, nv_mouse, 0, 0}, - {K_MIDDLERELEASE, nv_mouse, 0, 0}, - {K_RIGHTMOUSE, nv_mouse, 0, 0}, - {K_RIGHTDRAG, nv_mouse, 0, 0}, - {K_RIGHTRELEASE, nv_mouse, 0, 0}, - {K_X1MOUSE, nv_mouse, 0, 0}, - {K_X1DRAG, nv_mouse, 0, 0}, - {K_X1RELEASE, nv_mouse, 0, 0}, - {K_X2MOUSE, nv_mouse, 0, 0}, - {K_X2DRAG, nv_mouse, 0, 0}, - {K_X2RELEASE, nv_mouse, 0, 0}, - {K_IGNORE, nv_ignore, NV_KEEPREG, 0}, - {K_NOP, nv_nop, 0, 0}, - {K_INS, nv_edit, 0, 0}, - {K_KINS, nv_edit, 0, 0}, - {K_BS, nv_ctrlh, 0, 0}, - {K_UP, nv_up, NV_SSS|NV_STS, false}, - {K_S_UP, nv_page, NV_SS, BACKWARD}, - {K_DOWN, nv_down, NV_SSS|NV_STS, false}, - {K_S_DOWN, nv_page, NV_SS, FORWARD}, - {K_LEFT, nv_left, NV_SSS|NV_STS|NV_RL, 0}, - {K_S_LEFT, nv_bck_word, NV_SS|NV_RL, 0}, - {K_C_LEFT, nv_bck_word, NV_SSS|NV_RL|NV_STS, 1}, - {K_RIGHT, nv_right, NV_SSS|NV_STS|NV_RL, 0}, - {K_S_RIGHT, nv_wordcmd, NV_SS|NV_RL, false}, - {K_C_RIGHT, nv_wordcmd, NV_SSS|NV_RL|NV_STS, true}, - {K_PAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD}, - {K_KPAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD}, - {K_PAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD}, - {K_KPAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD}, - {K_END, nv_end, NV_SSS|NV_STS, false}, - {K_KEND, nv_end, NV_SSS|NV_STS, false}, - {K_S_END, nv_end, NV_SS, false}, - {K_C_END, nv_end, NV_SSS|NV_STS, true}, - {K_HOME, nv_home, NV_SSS|NV_STS, 0}, - {K_KHOME, nv_home, NV_SSS|NV_STS, 0}, - {K_S_HOME, nv_home, NV_SS, 0}, - {K_C_HOME, nv_goto, NV_SSS|NV_STS, false}, - {K_DEL, nv_abbrev, 0, 0}, - {K_KDEL, nv_abbrev, 0, 0}, - {K_UNDO, nv_kundo, 0, 0}, - {K_HELP, nv_help, NV_NCW, 0}, - {K_F1, nv_help, NV_NCW, 0}, - {K_XF1, nv_help, NV_NCW, 0}, - {K_SELECT, nv_select, 0, 0}, - {K_F8, farsi_fkey, 0, 0}, - {K_F9, farsi_fkey, 0, 0}, - {K_EVENT, nv_event, NV_KEEPREG, 0}, - {K_FOCUSGAINED, nv_focusgained, NV_KEEPREG, 0}, - {K_FOCUSLOST, nv_focuslost, NV_KEEPREG, 0}, + { NUL, nv_error, 0, 0 }, + { Ctrl_A, nv_addsub, 0, 0 }, + { Ctrl_B, nv_page, NV_STS, BACKWARD }, + { Ctrl_C, nv_esc, 0, true }, + { Ctrl_D, nv_halfpage, 0, 0 }, + { Ctrl_E, nv_scroll_line, 0, true }, + { Ctrl_F, nv_page, NV_STS, FORWARD }, + { Ctrl_G, nv_ctrlg, 0, 0 }, + { Ctrl_H, nv_ctrlh, 0, 0 }, + { Ctrl_I, nv_pcmark, 0, 0 }, + { NL, nv_down, 0, false }, + { Ctrl_K, nv_error, 0, 0 }, + { Ctrl_L, nv_clear, 0, 0 }, + { Ctrl_M, nv_down, 0, true }, + { Ctrl_N, nv_down, NV_STS, false }, + { Ctrl_O, nv_ctrlo, 0, 0 }, + { Ctrl_P, nv_up, NV_STS, false }, + { Ctrl_Q, nv_visual, 0, false }, + { Ctrl_R, nv_redo, 0, 0 }, + { Ctrl_S, nv_ignore, 0, 0 }, + { Ctrl_T, nv_tagpop, NV_NCW, 0 }, + { Ctrl_U, nv_halfpage, 0, 0 }, + { Ctrl_V, nv_visual, 0, false }, + { 'V', nv_visual, 0, false }, + { 'v', nv_visual, 0, false }, + { Ctrl_W, nv_window, 0, 0 }, + { Ctrl_X, nv_addsub, 0, 0 }, + { Ctrl_Y, nv_scroll_line, 0, false }, + { Ctrl_Z, nv_suspend, 0, 0 }, + { ESC, nv_esc, 0, false }, + { Ctrl_BSL, nv_normal, NV_NCH_ALW, 0 }, + { Ctrl_RSB, nv_ident, NV_NCW, 0 }, + { Ctrl_HAT, nv_hat, NV_NCW, 0 }, + { Ctrl__, nv_error, 0, 0 }, + { ' ', nv_right, 0, 0 }, + { '!', nv_operator, 0, 0 }, + { '"', nv_regname, NV_NCH_NOP|NV_KEEPREG, 0 }, + { '#', nv_ident, 0, 0 }, + { '$', nv_dollar, 0, 0 }, + { '%', nv_percent, 0, 0 }, + { '&', nv_optrans, 0, 0 }, + { '\'', nv_gomark, NV_NCH_ALW, true }, + { '(', nv_brace, 0, BACKWARD }, + { ')', nv_brace, 0, FORWARD }, + { '*', nv_ident, 0, 0 }, + { '+', nv_down, 0, true }, + { ',', nv_csearch, 0, true }, + { '-', nv_up, 0, true }, + { '.', nv_dot, NV_KEEPREG, 0 }, + { '/', nv_search, 0, false }, + { '0', nv_beginline, 0, 0 }, + { '1', nv_ignore, 0, 0 }, + { '2', nv_ignore, 0, 0 }, + { '3', nv_ignore, 0, 0 }, + { '4', nv_ignore, 0, 0 }, + { '5', nv_ignore, 0, 0 }, + { '6', nv_ignore, 0, 0 }, + { '7', nv_ignore, 0, 0 }, + { '8', nv_ignore, 0, 0 }, + { '9', nv_ignore, 0, 0 }, + { ':', nv_colon, 0, 0 }, + { ';', nv_csearch, 0, false }, + { '<', nv_operator, NV_RL, 0 }, + { '=', nv_operator, 0, 0 }, + { '>', nv_operator, NV_RL, 0 }, + { '?', nv_search, 0, false }, + { '@', nv_at, NV_NCH_NOP, false }, + { 'A', nv_edit, 0, 0 }, + { 'B', nv_bck_word, 0, 1 }, + { 'C', nv_abbrev, NV_KEEPREG, 0 }, + { 'D', nv_abbrev, NV_KEEPREG, 0 }, + { 'E', nv_wordcmd, 0, true }, + { 'F', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD }, + { 'G', nv_goto, 0, true }, + { 'H', nv_scroll, 0, 0 }, + { 'I', nv_edit, 0, 0 }, + { 'J', nv_join, 0, 0 }, + { 'K', nv_ident, 0, 0 }, + { 'L', nv_scroll, 0, 0 }, + { 'M', nv_scroll, 0, 0 }, + { 'N', nv_next, 0, SEARCH_REV }, + { 'O', nv_open, 0, 0 }, + { 'P', nv_put, 0, 0 }, + { 'Q', nv_exmode, NV_NCW, 0 }, + { 'R', nv_Replace, 0, false }, + { 'S', nv_subst, NV_KEEPREG, 0 }, + { 'T', nv_csearch, NV_NCH_ALW|NV_LANG, BACKWARD }, + { 'U', nv_Undo, 0, 0 }, + { 'W', nv_wordcmd, 0, true }, + { 'X', nv_abbrev, NV_KEEPREG, 0 }, + { 'Y', nv_abbrev, NV_KEEPREG, 0 }, + { 'Z', nv_Zet, NV_NCH_NOP|NV_NCW, 0 }, + { '[', nv_brackets, NV_NCH_ALW, BACKWARD }, + { '\\', nv_error, 0, 0 }, + { ']', nv_brackets, NV_NCH_ALW, FORWARD }, + { '^', nv_beginline, 0, BL_WHITE | BL_FIX }, + { '_', nv_lineop, 0, 0 }, + { '`', nv_gomark, NV_NCH_ALW, false }, + { 'a', nv_edit, NV_NCH, 0 }, + { 'b', nv_bck_word, 0, 0 }, + { 'c', nv_operator, 0, 0 }, + { 'd', nv_operator, 0, 0 }, + { 'e', nv_wordcmd, 0, false }, + { 'f', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD }, + { 'g', nv_g_cmd, NV_NCH_ALW, false }, + { 'h', nv_left, NV_RL, 0 }, + { 'i', nv_edit, NV_NCH, 0 }, + { 'j', nv_down, 0, false }, + { 'k', nv_up, 0, false }, + { 'l', nv_right, NV_RL, 0 }, + { 'm', nv_mark, NV_NCH_NOP, 0 }, + { 'n', nv_next, 0, 0 }, + { 'o', nv_open, 0, 0 }, + { 'p', nv_put, 0, 0 }, + { 'q', nv_record, NV_NCH, 0 }, + { 'r', nv_replace, NV_NCH_NOP|NV_LANG, 0 }, + { 's', nv_subst, NV_KEEPREG, 0 }, + { 't', nv_csearch, NV_NCH_ALW|NV_LANG, FORWARD }, + { 'u', nv_undo, 0, 0 }, + { 'w', nv_wordcmd, 0, false }, + { 'x', nv_abbrev, NV_KEEPREG, 0 }, + { 'y', nv_operator, 0, 0 }, + { 'z', nv_zet, NV_NCH_ALW, 0 }, + { '{', nv_findpar, 0, BACKWARD }, + { '|', nv_pipe, 0, 0 }, + { '}', nv_findpar, 0, FORWARD }, + { '~', nv_tilde, 0, 0 }, + + // pound sign + { POUND, nv_ident, 0, 0 }, + { K_MOUSEUP, nv_mousescroll, 0, MSCR_UP }, + { K_MOUSEDOWN, nv_mousescroll, 0, MSCR_DOWN }, + { K_MOUSELEFT, nv_mousescroll, 0, MSCR_LEFT }, + { K_MOUSERIGHT, nv_mousescroll, 0, MSCR_RIGHT }, + { K_LEFTMOUSE, nv_mouse, 0, 0 }, + { K_LEFTMOUSE_NM, nv_mouse, 0, 0 }, + { K_LEFTDRAG, nv_mouse, 0, 0 }, + { K_LEFTRELEASE, nv_mouse, 0, 0 }, + { K_LEFTRELEASE_NM, nv_mouse, 0, 0 }, + { K_MIDDLEMOUSE, nv_mouse, 0, 0 }, + { K_MIDDLEDRAG, nv_mouse, 0, 0 }, + { K_MIDDLERELEASE, nv_mouse, 0, 0 }, + { K_RIGHTMOUSE, nv_mouse, 0, 0 }, + { K_RIGHTDRAG, nv_mouse, 0, 0 }, + { K_RIGHTRELEASE, nv_mouse, 0, 0 }, + { K_X1MOUSE, nv_mouse, 0, 0 }, + { K_X1DRAG, nv_mouse, 0, 0 }, + { K_X1RELEASE, nv_mouse, 0, 0 }, + { K_X2MOUSE, nv_mouse, 0, 0 }, + { K_X2DRAG, nv_mouse, 0, 0 }, + { K_X2RELEASE, nv_mouse, 0, 0 }, + { K_IGNORE, nv_ignore, NV_KEEPREG, 0 }, + { K_NOP, nv_nop, 0, 0 }, + { K_INS, nv_edit, 0, 0 }, + { K_KINS, nv_edit, 0, 0 }, + { K_BS, nv_ctrlh, 0, 0 }, + { K_UP, nv_up, NV_SSS|NV_STS, false }, + { K_S_UP, nv_page, NV_SS, BACKWARD }, + { K_DOWN, nv_down, NV_SSS|NV_STS, false }, + { K_S_DOWN, nv_page, NV_SS, FORWARD }, + { K_LEFT, nv_left, NV_SSS|NV_STS|NV_RL, 0 }, + { K_S_LEFT, nv_bck_word, NV_SS|NV_RL, 0 }, + { K_C_LEFT, nv_bck_word, NV_SSS|NV_RL|NV_STS, 1 }, + { K_RIGHT, nv_right, NV_SSS|NV_STS|NV_RL, 0 }, + { K_S_RIGHT, nv_wordcmd, NV_SS|NV_RL, false }, + { K_C_RIGHT, nv_wordcmd, NV_SSS|NV_RL|NV_STS, true }, + { K_PAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD }, + { K_KPAGEUP, nv_page, NV_SSS|NV_STS, BACKWARD }, + { K_PAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD }, + { K_KPAGEDOWN, nv_page, NV_SSS|NV_STS, FORWARD }, + { K_END, nv_end, NV_SSS|NV_STS, false }, + { K_KEND, nv_end, NV_SSS|NV_STS, false }, + { K_S_END, nv_end, NV_SS, false }, + { K_C_END, nv_end, NV_SSS|NV_STS, true }, + { K_HOME, nv_home, NV_SSS|NV_STS, 0 }, + { K_KHOME, nv_home, NV_SSS|NV_STS, 0 }, + { K_S_HOME, nv_home, NV_SS, 0 }, + { K_C_HOME, nv_goto, NV_SSS|NV_STS, false }, + { K_DEL, nv_abbrev, 0, 0 }, + { K_KDEL, nv_abbrev, 0, 0 }, + { K_UNDO, nv_kundo, 0, 0 }, + { K_HELP, nv_help, NV_NCW, 0 }, + { K_F1, nv_help, NV_NCW, 0 }, + { K_XF1, nv_help, NV_NCW, 0 }, + { K_SELECT, nv_select, 0, 0 }, + { K_F8, farsi_f8, 0, 0 }, + { K_F9, farsi_f9, 0, 0 }, + { K_EVENT, nv_event, NV_KEEPREG, 0 }, + { K_FOCUSGAINED, nv_focusgained, NV_KEEPREG, 0 }, + { K_FOCUSLOST, nv_focuslost, NV_KEEPREG, 0 }, }; /* Number of commands in nv_cmds[]. */ |