Lines Matching refs:cap

20 static void	set_vcount_ca(cmdarg_T *cap, int *set_prevcount);
23 static void unshift_special(cmdarg_T *cap);
33 static void nv_ignore(cmdarg_T *cap);
34 static void nv_nop(cmdarg_T *cap);
35 static void nv_error(cmdarg_T *cap);
36 static void nv_help(cmdarg_T *cap);
37 static void nv_addsub(cmdarg_T *cap);
38 static void nv_page(cmdarg_T *cap);
39 static void nv_zet(cmdarg_T *cap);
41 static void nv_ver_scrollbar(cmdarg_T *cap);
42 static void nv_hor_scrollbar(cmdarg_T *cap);
45 static void nv_tabline(cmdarg_T *cap);
46 static void nv_tabmenu(cmdarg_T *cap);
48 static void nv_exmode(cmdarg_T *cap);
49 static void nv_colon(cmdarg_T *cap);
50 static void nv_ctrlg(cmdarg_T *cap);
51 static void nv_ctrlh(cmdarg_T *cap);
52 static void nv_clear(cmdarg_T *cap);
53 static void nv_ctrlo(cmdarg_T *cap);
54 static void nv_hat(cmdarg_T *cap);
55 static void nv_Zet(cmdarg_T *cap);
56 static void nv_ident(cmdarg_T *cap);
57 static void nv_tagpop(cmdarg_T *cap);
58 static void nv_scroll(cmdarg_T *cap);
59 static void nv_right(cmdarg_T *cap);
60 static void nv_left(cmdarg_T *cap);
61 static void nv_up(cmdarg_T *cap);
62 static void nv_down(cmdarg_T *cap);
63 static void nv_end(cmdarg_T *cap);
64 static void nv_dollar(cmdarg_T *cap);
65 static void nv_search(cmdarg_T *cap);
66 static void nv_next(cmdarg_T *cap);
67 static int normal_search(cmdarg_T *cap, int dir, char_u *pat, int opt, int *wrapped);
68 static void nv_csearch(cmdarg_T *cap);
69 static void nv_brackets(cmdarg_T *cap);
70 static void nv_percent(cmdarg_T *cap);
71 static void nv_brace(cmdarg_T *cap);
72 static void nv_mark(cmdarg_T *cap);
73 static void nv_findpar(cmdarg_T *cap);
74 static void nv_undo(cmdarg_T *cap);
75 static void nv_kundo(cmdarg_T *cap);
76 static void nv_Replace(cmdarg_T *cap);
77 static void nv_replace(cmdarg_T *cap);
78 static void nv_cursormark(cmdarg_T *cap, int flag, pos_T *pos);
79 static void v_visop(cmdarg_T *cap);
80 static void nv_subst(cmdarg_T *cap);
81 static void nv_abbrev(cmdarg_T *cap);
82 static void nv_optrans(cmdarg_T *cap);
83 static void nv_gomark(cmdarg_T *cap);
84 static void nv_pcmark(cmdarg_T *cap);
85 static void nv_regname(cmdarg_T *cap);
86 static void nv_visual(cmdarg_T *cap);
88 static void nv_window(cmdarg_T *cap);
89 static void nv_suspend(cmdarg_T *cap);
90 static void nv_g_cmd(cmdarg_T *cap);
91 static void nv_dot(cmdarg_T *cap);
92 static void nv_redo(cmdarg_T *cap);
93 static void nv_Undo(cmdarg_T *cap);
94 static void nv_tilde(cmdarg_T *cap);
95 static void nv_operator(cmdarg_T *cap);
99 static void nv_lineop(cmdarg_T *cap);
100 static void nv_home(cmdarg_T *cap);
101 static void nv_pipe(cmdarg_T *cap);
102 static void nv_bck_word(cmdarg_T *cap);
103 static void nv_wordcmd(cmdarg_T *cap);
104 static void nv_beginline(cmdarg_T *cap);
106 static void adjust_for_sel(cmdarg_T *cap);
107 static void nv_select(cmdarg_T *cap);
108 static void nv_goto(cmdarg_T *cap);
109 static void nv_normal(cmdarg_T *cap);
111 static void nv_edit(cmdarg_T *cap);
112 static void invoke_edit(cmdarg_T *cap, int repl, int cmd, int startln);
114 static void nv_object(cmdarg_T *cap);
116 static void nv_record(cmdarg_T *cap);
117 static void nv_at(cmdarg_T *cap);
118 static void nv_halfpage(cmdarg_T *cap);
119 static void nv_join(cmdarg_T *cap);
120 static void nv_put(cmdarg_T *cap);
121 static void nv_put_opt(cmdarg_T *cap, int fix_indent);
122 static void nv_open(cmdarg_T *cap);
124 static void nv_nbcmd(cmdarg_T *cap);
127 static void nv_drop(cmdarg_T *cap);
129 static void nv_cursorhold(cmdarg_T *cap);
137 typedef void (*nv_func_T)(cmdarg_T *cap);
1304 set_vcount_ca(cmdarg_T *cap, int *set_prevcount) in set_vcount_ca() argument
1306 long count = cap->count0; in set_vcount_ca()
1309 if (cap->opcount != 0) in set_vcount_ca()
1310 count = cap->opcount * (count == 0 ? 1 : count); in set_vcount_ca()
1680 prep_redo_cmd(cmdarg_T *cap) in prep_redo_cmd() argument
1682 prep_redo(cap->oap->regname, cap->count0, in prep_redo_cmd()
1683 NUL, cap->cmdchar, NUL, NUL, cap->nchar); in prep_redo_cmd()
1770 unshift_special(cmdarg_T *cap) in unshift_special() argument
1772 switch (cap->cmdchar) in unshift_special()
1774 case K_S_RIGHT: cap->cmdchar = K_RIGHT; break; in unshift_special()
1775 case K_S_LEFT: cap->cmdchar = K_LEFT; break; in unshift_special()
1776 case K_S_UP: cap->cmdchar = K_UP; break; in unshift_special()
1777 case K_S_DOWN: cap->cmdchar = K_DOWN; break; in unshift_special()
1778 case K_S_HOME: cap->cmdchar = K_HOME; break; in unshift_special()
1779 case K_S_END: cap->cmdchar = K_END; break; in unshift_special()
1781 cap->cmdchar = simplify_key(cap->cmdchar, &mod_mask); in unshift_special()
2216 nv_ignore(cmdarg_T *cap) in nv_ignore() argument
2218 cap->retval |= CA_COMMAND_BUSY; // don't call edit() now in nv_ignore()
2226 nv_nop(cmdarg_T *cap UNUSED) in nv_nop()
2234 nv_error(cmdarg_T *cap) in nv_error() argument
2236 clearopbeep(cap->oap); in nv_error()
2243 nv_help(cmdarg_T *cap) in nv_help() argument
2245 if (!checkclearopq(cap->oap)) in nv_help()
2253 nv_addsub(cmdarg_T *cap) in nv_addsub() argument
2257 clearopbeep(cap->oap); in nv_addsub()
2260 if (!VIsual_active && cap->oap->op_type == OP_NOP) in nv_addsub()
2262 prep_redo_cmd(cap); in nv_addsub()
2263 cap->oap->op_type = cap->cmdchar == Ctrl_A ? OP_NR_ADD : OP_NR_SUB; in nv_addsub()
2264 op_addsub(cap->oap, cap->count1, cap->arg); in nv_addsub()
2265 cap->oap->op_type = OP_NOP; in nv_addsub()
2268 nv_operator(cap); in nv_addsub()
2270 clearop(cap->oap); in nv_addsub()
2277 nv_page(cmdarg_T *cap) in nv_page() argument
2279 if (!checkclearop(cap->oap)) in nv_page()
2284 if (cap->arg == BACKWARD) in nv_page()
2285 goto_tabpage(-(int)cap->count1); in nv_page()
2287 goto_tabpage((int)cap->count0); in nv_page()
2290 (void)onepage(cap->arg, cap->count1); in nv_page()
2706 nv_scroll_line(cmdarg_T *cap) in nv_scroll_line() argument
2708 if (!checkclearop(cap->oap)) in nv_scroll_line()
2709 scroll_redraw(cap->arg, cap->count1); in nv_scroll_line()
2773 nv_zet(cmdarg_T *cap) in nv_zet() argument
2777 int nchar = cap->nchar; in nv_zet()
2792 if (checkclearop(cap->oap)) in nv_zet()
2826 cap->count1 = n ? n * cap->count1 : cap->count1; in nv_zet()
2831 clearopbeep(cap->oap); in nv_zet()
2835 cap->oap->op_type = OP_NOP; in nv_zet()
2845 cap->nchar != 'f' && cap->nchar != 'F' in nv_zet()
2846 && !(VIsual_active && vim_strchr((char_u *)"dcCoO", cap->nchar)) in nv_zet()
2847 && cap->nchar != 'j' && cap->nchar != 'k' in nv_zet()
2850 checkclearop(cap->oap)) in nv_zet()
2858 && cap->count0 in nv_zet()
2859 && cap->count0 != curwin->w_cursor.lnum) in nv_zet()
2862 if (cap->count0 > curbuf->b_ml.ml_line_count) in nv_zet()
2865 curwin->w_cursor.lnum = cap->count0; in nv_zet()
2873 if (cap->count0 == 0) in nv_zet()
2907 if (cap->count0 != 0) in nv_zet()
2928 cap->count1 *= curwin->w_width / 2; in nv_zet()
2936 if ((colnr_T)cap->count1 > curwin->w_leftcol) in nv_zet()
2939 curwin->w_leftcol -= (colnr_T)cap->count1; in nv_zet()
2945 case 'L': cap->count1 *= curwin->w_width / 2; in nv_zet()
2954 curwin->w_leftcol += (colnr_T)cap->count1; in nv_zet()
3004 case 'p': nv_put(cap); in nv_zet()
3007 case 'y': nv_operator(cap); in nv_zet()
3015 cap->nchar = 'f'; in nv_zet()
3016 nv_operator(cap); in nv_zet()
3020 if (nchar == 'F' && cap->oap->op_type == OP_FOLD) in nv_zet()
3022 nv_operator(cap); in nv_zet()
3027 clearopbeep(cap->oap); in nv_zet()
3036 nv_operator(cap); in nv_zet()
3070 openFold(curwin->w_cursor.lnum, cap->count1); in nv_zet()
3073 closeFold(curwin->w_cursor.lnum, cap->count1); in nv_zet()
3090 nv_operator(cap); in nv_zet()
3092 openFold(curwin->w_cursor.lnum, cap->count1); in nv_zet()
3097 nv_operator(cap); in nv_zet()
3104 nv_operator(cap); in nv_zet()
3106 closeFold(curwin->w_cursor.lnum, cap->count1); in nv_zet()
3112 nv_operator(cap); in nv_zet()
3138 curwin->w_p_fdl -= cap->count1; in nv_zet()
3153 case 'r': curwin->w_p_fdl += cap->count1; in nv_zet()
3170 cap->count1) == FAIL) in nv_zet()
3171 clearopbeep(cap->oap); in nv_zet()
3189 clearopbeep(cap->oap); in nv_zet()
3203 if (checkclearop(cap->oap)) in nv_zet()
3205 if (VIsual_active && get_visual_text(cap, &ptr, &len) in nv_zet()
3229 ? 0 : (int)cap->count1, in nv_zet()
3235 if (!checkclearop(cap->oap)) in nv_zet()
3236 spell_suggest((int)cap->count0); in nv_zet()
3240 default: clearopbeep(cap->oap); in nv_zet()
3277 nv_ver_scrollbar(cmdarg_T *cap) in nv_ver_scrollbar() argument
3279 if (cap->oap->op_type != OP_NOP) in nv_ver_scrollbar()
3280 clearopbeep(cap->oap); in nv_ver_scrollbar()
3290 nv_hor_scrollbar(cmdarg_T *cap) in nv_hor_scrollbar() argument
3292 if (cap->oap->op_type != OP_NOP) in nv_hor_scrollbar()
3293 clearopbeep(cap->oap); in nv_hor_scrollbar()
3305 nv_tabline(cmdarg_T *cap) in nv_tabline() argument
3307 if (cap->oap->op_type != OP_NOP) in nv_tabline()
3308 clearopbeep(cap->oap); in nv_tabline()
3318 nv_tabmenu(cmdarg_T *cap) in nv_tabmenu() argument
3320 if (cap->oap->op_type != OP_NOP) in nv_tabmenu()
3321 clearopbeep(cap->oap); in nv_tabmenu()
3376 nv_exmode(cmdarg_T *cap) in nv_exmode() argument
3383 else if (!checkclearop(cap->oap)) in nv_exmode()
3391 nv_colon(cmdarg_T *cap) in nv_colon() argument
3395 int is_cmdkey = cap->cmdchar == K_COMMAND; in nv_colon()
3398 nv_operator(cap); in nv_colon()
3401 if (cap->oap->op_type != OP_NOP) in nv_colon()
3404 cap->oap->motion_type = MCHAR; in nv_colon()
3405 cap->oap->inclusive = FALSE; in nv_colon()
3407 else if (cap->count0 && !is_cmdkey) in nv_colon()
3411 if (cap->count0 > 1) in nv_colon()
3414 stuffnumReadbuff((long)cap->count0 - 1L); in nv_colon()
3426 cap->oap->op_type != OP_NOP ? DOCMD_KEEPLINE : 0); in nv_colon()
3439 clearop(cap->oap); in nv_colon()
3440 else if (cap->oap->op_type != OP_NOP in nv_colon()
3441 && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count in nv_colon()
3442 || cap->oap->start.col > in nv_colon()
3443 (colnr_T)STRLEN(ml_get(cap->oap->start.lnum)) in nv_colon()
3447 clearopbeep(cap->oap); in nv_colon()
3455 nv_ctrlg(cmdarg_T *cap) in nv_ctrlg() argument
3463 else if (!checkclearop(cap->oap)) in nv_ctrlg()
3465 fileinfo((int)cap->count0, FALSE, TRUE); in nv_ctrlg()
3472 nv_ctrlh(cmdarg_T *cap) in nv_ctrlh() argument
3476 cap->cmdchar = 'x'; // BS key behaves like 'x' in Select mode in nv_ctrlh()
3477 v_visop(cap); in nv_ctrlh()
3480 nv_left(cap); in nv_ctrlh()
3487 nv_clear(cmdarg_T *cap) in nv_clear() argument
3489 if (!checkclearop(cap->oap)) in nv_clear()
3518 nv_ctrlo(cmdarg_T *cap) in nv_ctrlo() argument
3529 cap->count1 = -cap->count1; in nv_ctrlo()
3530 nv_pcmark(cap); in nv_ctrlo()
3539 nv_hat(cmdarg_T *cap) in nv_hat() argument
3541 if (!checkclearopq(cap->oap)) in nv_hat()
3542 (void)buflist_getfile((int)cap->count0, (linenr_T)0, in nv_hat()
3550 nv_Zet(cmdarg_T *cap) in nv_Zet() argument
3552 if (!checkclearopq(cap->oap)) in nv_Zet()
3554 switch (cap->nchar) in nv_Zet()
3564 default: clearopbeep(cap->oap); in nv_Zet()
3595 nv_ident(cmdarg_T *cap) in nv_ident() argument
3613 if (cap->cmdchar == 'g') // "g*", "g#", "g]" and "gCTRL-]" in nv_ident()
3615 cmdchar = cap->nchar; in nv_ident()
3620 cmdchar = cap->cmdchar; in nv_ident()
3632 if (VIsual_active && get_visual_text(cap, &ptr, &n) == FAIL) in nv_ident()
3634 if (checkclearopq(cap->oap)) in nv_ident()
3642 clearop(cap->oap); in nv_ident()
3687 if (cap->count0 != 0) in nv_ident()
3689 kp, cap->count0); in nv_ident()
3714 if (cap->count0 != 0 && !(isman || isman_s)) in nv_ident()
3715 sprintf((char *)buf, ".,.+%ld", cap->count0 - 1); in nv_ident()
3718 if (cap->count0 == 0 && isman_s) in nv_ident()
3723 if (cap->count0 != 0 && (isman || isman_s)) in nv_ident()
3725 sprintf((char *)buf + STRLEN(buf), "%ld", cap->count0); in nv_ident()
3749 else if (cap->count0 == 0) in nv_ident()
3752 sprintf((char *)buf, ":%ldta ", cap->count0); in nv_ident()
3837 (void)normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0, NULL); in nv_ident()
3855 cmdarg_T *cap, in get_visual_text() argument
3863 if (cap != NULL) in get_visual_text()
3864 clearopbeep(cap->oap); in get_visual_text()
3898 nv_tagpop(cmdarg_T *cap) in nv_tagpop() argument
3900 if (!checkclearopq(cap->oap)) in nv_tagpop()
3901 do_tag((char_u *)"", DT_POP, (int)cap->count1, FALSE, TRUE); in nv_tagpop()
3908 nv_scroll(cmdarg_T *cap) in nv_scroll() argument
3917 cap->oap->motion_type = MLINE; in nv_scroll()
3920 if (cap->cmdchar == 'L') in nv_scroll()
3924 if (cap->count1 - 1 >= curwin->w_cursor.lnum) in nv_scroll()
3932 for (n = cap->count1 - 1; n > 0 in nv_scroll()
3942 curwin->w_cursor.lnum -= cap->count1 - 1; in nv_scroll()
3947 if (cap->cmdchar == 'M') in nv_scroll()
3981 n = cap->count1 - 1; in nv_scroll()
4002 if (cap->oap->op_type == OP_NOP) in nv_scroll()
4011 nv_right(cmdarg_T *cap) in nv_right() argument
4020 cap->arg = TRUE; in nv_right()
4021 nv_wordcmd(cap); in nv_right()
4025 cap->oap->motion_type = MCHAR; in nv_right()
4026 cap->oap->inclusive = FALSE; in nv_right()
4036 for (n = cap->count1; n > 0; --n) in nv_right()
4047 if ( ((cap->cmdchar == ' ' in nv_right()
4049 || (cap->cmdchar == 'l' in nv_right()
4051 || (cap->cmdchar == K_RIGHT in nv_right()
4058 if ( cap->oap->op_type != OP_NOP in nv_right()
4059 && !cap->oap->inclusive in nv_right()
4061 cap->oap->inclusive = TRUE; in nv_right()
4068 cap->oap->inclusive = FALSE; in nv_right()
4072 if (cap->oap->op_type == OP_NOP) in nv_right()
4075 if (n == cap->count1) in nv_right()
4081 cap->oap->inclusive = TRUE; in nv_right()
4100 if (n != cap->count1 && (fdo_flags & FDO_HOR) && KeyTyped in nv_right()
4101 && cap->oap->op_type == OP_NOP) in nv_right()
4112 nv_left(cmdarg_T *cap) in nv_left() argument
4120 cap->arg = 1; in nv_left()
4121 nv_bck_word(cap); in nv_left()
4125 cap->oap->motion_type = MCHAR; in nv_left()
4126 cap->oap->inclusive = FALSE; in nv_left()
4127 for (n = cap->count1; n > 0; --n) in nv_left()
4134 if ( (((cap->cmdchar == K_BS in nv_left()
4135 || cap->cmdchar == Ctrl_H) in nv_left()
4137 || (cap->cmdchar == 'h' in nv_left()
4139 || (cap->cmdchar == K_LEFT in nv_left()
4151 if ( (cap->oap->op_type == OP_DELETE in nv_left()
4152 || cap->oap->op_type == OP_CHANGE) in nv_left()
4164 cap->retval |= CA_NO_ADJ_OP_END; in nv_left()
4169 else if (cap->oap->op_type == OP_NOP && n == cap->count1) in nv_left()
4175 if (n != cap->count1 && (fdo_flags & FDO_HOR) && KeyTyped in nv_left()
4176 && cap->oap->op_type == OP_NOP) in nv_left()
4186 nv_up(cmdarg_T *cap) in nv_up() argument
4191 cap->arg = BACKWARD; in nv_up()
4192 nv_page(cap); in nv_up()
4196 cap->oap->motion_type = MLINE; in nv_up()
4197 if (cursor_up(cap->count1, cap->oap->op_type == OP_NOP) == FAIL) in nv_up()
4198 clearopbeep(cap->oap); in nv_up()
4199 else if (cap->arg) in nv_up()
4209 nv_down(cmdarg_T *cap) in nv_down() argument
4214 cap->arg = FORWARD; in nv_down()
4215 nv_page(cap); in nv_down()
4219 else if (bt_quickfix(curbuf) && cap->cmdchar == CAR) in nv_down()
4226 if (cmdwin_type != 0 && cap->cmdchar == CAR) in nv_down()
4232 if (bt_prompt(curbuf) && cap->cmdchar == CAR in nv_down()
4242 cap->oap->motion_type = MLINE; in nv_down()
4243 if (cursor_down(cap->count1, cap->oap->op_type == OP_NOP) == FAIL) in nv_down()
4244 clearopbeep(cap->oap); in nv_down()
4245 else if (cap->arg) in nv_down()
4256 nv_gotofile(cmdarg_T *cap) in nv_gotofile() argument
4263 clearopbeep(cap->oap); in nv_gotofile()
4269 clearop(cap->oap); in nv_gotofile()
4277 ptr = grab_file_name(cap->count1, &lnum); in nv_gotofile()
4287 && cap->nchar == 'F' && lnum >= 0) in nv_gotofile()
4296 clearop(cap->oap); in nv_gotofile()
4304 nv_end(cmdarg_T *cap) in nv_end() argument
4306 if (cap->arg || (mod_mask & MOD_MASK_CTRL)) // CTRL-END = goto last line in nv_end()
4308 cap->arg = TRUE; in nv_end()
4309 nv_goto(cap); in nv_end()
4310 cap->count1 = 1; // to end of current line in nv_end()
4312 nv_dollar(cap); in nv_end()
4319 nv_dollar(cmdarg_T *cap) in nv_dollar() argument
4321 cap->oap->motion_type = MCHAR; in nv_dollar()
4322 cap->oap->inclusive = TRUE; in nv_dollar()
4327 || cap->oap->op_type == OP_NOP) in nv_dollar()
4329 if (cursor_down((long)(cap->count1 - 1), in nv_dollar()
4330 cap->oap->op_type == OP_NOP) == FAIL) in nv_dollar()
4331 clearopbeep(cap->oap); in nv_dollar()
4333 else if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_dollar()
4343 nv_search(cmdarg_T *cap) in nv_search() argument
4345 oparg_T *oap = cap->oap; in nv_search()
4348 if (cap->cmdchar == '?' && cap->oap->op_type == OP_ROT13) in nv_search()
4351 cap->cmdchar = 'g'; in nv_search()
4352 cap->nchar = '?'; in nv_search()
4353 nv_operator(cap); in nv_search()
4359 cap->searchbuf = getcmdline(cap->cmdchar, cap->count1, 0, TRUE); in nv_search()
4361 if (cap->searchbuf == NULL) in nv_search()
4367 (void)normal_search(cap, cap->cmdchar, cap->searchbuf, in nv_search()
4368 (cap->arg || !EQUAL_POS(save_cursor, curwin->w_cursor)) in nv_search()
4377 nv_next(cmdarg_T *cap) in nv_next() argument
4381 int i = normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg, &wrapped); in nv_next()
4388 cap->count1 += 1; in nv_next()
4389 (void)normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg, NULL); in nv_next()
4390 cap->count1 -= 1; in nv_next()
4401 cmdarg_T *cap, in normal_search() argument
4410 cap->oap->motion_type = MCHAR; in normal_search()
4411 cap->oap->inclusive = FALSE; in normal_search()
4412 cap->oap->use_reg_one = TRUE; in normal_search()
4416 i = do_search(cap->oap, dir, dir, pat, cap->count1, in normal_search()
4421 clearop(cap->oap); in normal_search()
4425 cap->oap->motion_type = MLINE; in normal_search()
4428 if (cap->oap->op_type == OP_NOP && (fdo_flags & FDO_SEARCH) && KeyTyped) in normal_search()
4446 nv_csearch(cmdarg_T *cap) in nv_csearch() argument
4450 if (cap->cmdchar == 't' || cap->cmdchar == 'T') in nv_csearch()
4455 cap->oap->motion_type = MCHAR; in nv_csearch()
4456 if (IS_SPECIAL(cap->nchar) || searchc(cap, t_cmd) == FAIL) in nv_csearch()
4457 clearopbeep(cap->oap); in nv_csearch()
4462 if (gchar_cursor() == TAB && virtual_active() && cap->arg == FORWARD in nv_csearch()
4463 && (t_cmd || cap->oap->op_type != OP_NOP)) in nv_csearch()
4472 adjust_for_sel(cap); in nv_csearch()
4474 if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_csearch()
4485 nv_brackets(cmdarg_T *cap) in nv_brackets() argument
4496 cap->oap->motion_type = MCHAR; in nv_brackets()
4497 cap->oap->inclusive = FALSE; in nv_brackets()
4505 if (cap->nchar == 'f') in nv_brackets()
4506 nv_gotofile(cap); in nv_brackets()
4526 cap->nchar) != NULL) in nv_brackets()
4532 clearop(cap->oap); in nv_brackets()
4536 cap->count0 == 0 ? !isupper(cap->nchar) : FALSE, in nv_brackets()
4537 ((cap->nchar & 0xf) == ('d' & 0xf)) ? FIND_DEFINE : FIND_ANY, in nv_brackets()
4538 cap->count1, in nv_brackets()
4539 isupper(cap->nchar) ? ACTION_SHOW_ALL : in nv_brackets()
4540 islower(cap->nchar) ? ACTION_SHOW : ACTION_GOTO, in nv_brackets()
4541 cap->cmdchar == ']' ? curwin->w_cursor.lnum + 1 : (linenr_T)1, in nv_brackets()
4556 if ( (cap->cmdchar == '[' in nv_brackets()
4557 && vim_strchr((char_u *)"{(*/#mM", cap->nchar) != NULL) in nv_brackets()
4558 || (cap->cmdchar == ']' in nv_brackets()
4559 && vim_strchr((char_u *)"})*/#mM", cap->nchar) != NULL)) in nv_brackets()
4561 if (cap->nchar == '*') in nv_brackets()
4562 cap->nchar = '/'; in nv_brackets()
4564 if (cap->nchar == 'm' || cap->nchar == 'M') in nv_brackets()
4566 if (cap->cmdchar == '[') in nv_brackets()
4574 findc = cap->nchar; in nv_brackets()
4575 n = cap->count1; in nv_brackets()
4579 if ((pos = findmatchlimit(cap->oap, findc, in nv_brackets()
4580 (cap->cmdchar == '[') ? FM_BACKWARD : FM_FORWARD, 0)) == NULL) in nv_brackets()
4584 if (cap->nchar != 'm' && cap->nchar != 'M') in nv_brackets()
4585 clearopbeep(cap->oap); in nv_brackets()
4603 if (cap->nchar == 'm' || cap->nchar == 'M') in nv_brackets()
4606 int norm = ((findc == '{') == (cap->nchar == 'm')); in nv_brackets()
4608 n = cap->count1; in nv_brackets()
4627 clearopbeep(cap->oap); in nv_brackets()
4650 else if ((pos = findmatchlimit(cap->oap, findc, in nv_brackets()
4651 (cap->cmdchar == '[') ? FM_BACKWARD : FM_FORWARD, in nv_brackets()
4663 clearopbeep(cap->oap); in nv_brackets()
4672 && cap->oap->op_type == OP_NOP) in nv_brackets()
4681 else if (cap->nchar == '[' || cap->nchar == ']') in nv_brackets()
4683 if (cap->nchar == cap->cmdchar) // "]]" or "[[" in nv_brackets()
4693 if (!findpar(&cap->oap->inclusive, cap->arg, cap->count1, flag, in nv_brackets()
4694 (cap->oap->op_type != OP_NOP in nv_brackets()
4695 && cap->arg == FORWARD && flag == '{'))) in nv_brackets()
4696 clearopbeep(cap->oap); in nv_brackets()
4699 if (cap->oap->op_type == OP_NOP) in nv_brackets()
4702 if ((fdo_flags & FDO_BLOCK) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_brackets()
4711 else if (cap->nchar == 'p' || cap->nchar == 'P') in nv_brackets()
4713 nv_put_opt(cap, TRUE); in nv_brackets()
4719 else if (cap->nchar == '\'' || cap->nchar == '`') in nv_brackets()
4722 for (n = cap->count1; n > 0; --n) in nv_brackets()
4725 pos = getnextmark(pos, cap->cmdchar == '[' ? BACKWARD : FORWARD, in nv_brackets()
4726 cap->nchar == '\''); in nv_brackets()
4732 nv_cursormark(cap, cap->nchar == '\'', pos); in nv_brackets()
4739 else if (cap->nchar >= K_RIGHTRELEASE && cap->nchar <= K_LEFTMOUSE) in nv_brackets()
4741 (void)do_mouse(cap->oap, cap->nchar, in nv_brackets()
4742 (cap->cmdchar == ']') ? FORWARD : BACKWARD, in nv_brackets()
4743 cap->count1, PUT_FIXINDENT); in nv_brackets()
4750 else if (cap->nchar == 'z') in nv_brackets()
4752 if (foldMoveTo(FALSE, cap->cmdchar == ']' ? FORWARD : BACKWARD, in nv_brackets()
4753 cap->count1) == FAIL) in nv_brackets()
4754 clearopbeep(cap->oap); in nv_brackets()
4762 else if (cap->nchar == 'c') in nv_brackets()
4764 if (diff_move_to(cap->cmdchar == ']' ? FORWARD : BACKWARD, in nv_brackets()
4765 cap->count1) == FAIL) in nv_brackets()
4766 clearopbeep(cap->oap); in nv_brackets()
4774 else if (cap->nchar == 's' || cap->nchar == 'S') in nv_brackets()
4777 for (n = 0; n < cap->count1; ++n) in nv_brackets()
4778 if (spell_move_to(curwin, cap->cmdchar == ']' ? FORWARD : BACKWARD, in nv_brackets()
4779 cap->nchar == 's' ? TRUE : FALSE, FALSE, NULL) == 0) in nv_brackets()
4781 clearopbeep(cap->oap); in nv_brackets()
4787 if (cap->oap->op_type == OP_NOP && (fdo_flags & FDO_SEARCH) && KeyTyped) in nv_brackets()
4795 clearopbeep(cap->oap); in nv_brackets()
4802 nv_percent(cmdarg_T *cap) in nv_percent() argument
4809 cap->oap->inclusive = TRUE; in nv_percent()
4810 if (cap->count0) // {cnt}% : goto {cnt} percentage in file in nv_percent()
4812 if (cap->count0 > 100) in nv_percent()
4813 clearopbeep(cap->oap); in nv_percent()
4816 cap->oap->motion_type = MLINE; in nv_percent()
4824 / 100L * cap->count0; in nv_percent()
4827 cap->count0 + 99L) / 100L; in nv_percent()
4837 cap->oap->motion_type = MCHAR; in nv_percent()
4838 cap->oap->use_reg_one = TRUE; in nv_percent()
4839 if ((pos = findmatch(cap->oap, NUL)) == NULL) in nv_percent()
4840 clearopbeep(cap->oap); in nv_percent()
4847 adjust_for_sel(cap); in nv_percent()
4851 if (cap->oap->op_type == OP_NOP in nv_percent()
4864 nv_brace(cmdarg_T *cap) in nv_brace() argument
4866 cap->oap->motion_type = MCHAR; in nv_brace()
4867 cap->oap->use_reg_one = TRUE; in nv_brace()
4869 cap->oap->inclusive = FALSE; in nv_brace()
4872 if (findsent(cap->arg, cap->count1) == FAIL) in nv_brace()
4873 clearopbeep(cap->oap); in nv_brace()
4877 adjust_cursor(cap->oap); in nv_brace()
4880 if ((fdo_flags & FDO_BLOCK) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_brace()
4890 nv_mark(cmdarg_T *cap) in nv_mark() argument
4892 if (!checkclearop(cap->oap)) in nv_mark()
4894 if (setmark(cap->nchar) == FAIL) in nv_mark()
4895 clearopbeep(cap->oap); in nv_mark()
4904 nv_findpar(cmdarg_T *cap) in nv_findpar() argument
4906 cap->oap->motion_type = MCHAR; in nv_findpar()
4907 cap->oap->inclusive = FALSE; in nv_findpar()
4908 cap->oap->use_reg_one = TRUE; in nv_findpar()
4910 if (!findpar(&cap->oap->inclusive, cap->arg, cap->count1, NUL, FALSE)) in nv_findpar()
4911 clearopbeep(cap->oap); in nv_findpar()
4916 if ((fdo_flags & FDO_BLOCK) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_findpar()
4926 nv_undo(cmdarg_T *cap) in nv_undo() argument
4928 if (cap->oap->op_type == OP_LOWER || VIsual_active) in nv_undo()
4931 cap->cmdchar = 'g'; in nv_undo()
4932 cap->nchar = 'u'; in nv_undo()
4933 nv_operator(cap); in nv_undo()
4936 nv_kundo(cap); in nv_undo()
4943 nv_kundo(cmdarg_T *cap) in nv_kundo() argument
4945 if (!checkclearopq(cap->oap)) in nv_kundo()
4950 clearopbeep(cap->oap); in nv_kundo()
4954 u_undo((int)cap->count1); in nv_kundo()
4963 nv_replace(cmdarg_T *cap) in nv_replace() argument
4969 if (checkclearop(cap->oap)) in nv_replace()
4974 clearopbeep(cap->oap); in nv_replace()
4980 if (cap->nchar == Ctrl_V) in nv_replace()
4983 cap->nchar = get_literal(FALSE); in nv_replace()
4985 if (cap->nchar > DEL) in nv_replace()
4992 if (IS_SPECIAL(cap->nchar)) in nv_replace()
4994 clearopbeep(cap->oap); in nv_replace()
5007 if (cap->nchar == CAR) in nv_replace()
5008 cap->nchar = REPLACE_CR_NCHAR; in nv_replace()
5009 else if (cap->nchar == NL) in nv_replace()
5010 cap->nchar = REPLACE_NL_NCHAR; in nv_replace()
5012 nv_operator(cap); in nv_replace()
5024 coladvance_force((colnr_T)(getviscol() + cap->count1)); in nv_replace()
5025 curwin->w_cursor.col -= cap->count1; in nv_replace()
5033 if (STRLEN(ptr) < (unsigned)cap->count1 in nv_replace()
5034 || (has_mbyte && mb_charlen(ptr) < cap->count1)) in nv_replace()
5036 clearopbeep(cap->oap); in nv_replace()
5046 if (had_ctrl_v != Ctrl_V && cap->nchar == '\t' && (curbuf->b_p_et || p_sta)) in nv_replace()
5048 stuffnumReadbuff(cap->count1); in nv_replace()
5059 if (had_ctrl_v != Ctrl_V && (cap->nchar == '\r' || cap->nchar == '\n')) in nv_replace()
5069 (void)del_chars(cap->count1, FALSE); // delete the characters in nv_replace()
5074 invoke_edit(cap, TRUE, 'r', FALSE); in nv_replace()
5078 prep_redo(cap->oap->regname, cap->count1, in nv_replace()
5079 NUL, 'r', NUL, had_ctrl_v, cap->nchar); in nv_replace()
5086 if (cap->ncharC1 != 0) in nv_replace()
5087 AppendCharToRedobuff(cap->ncharC1); in nv_replace()
5088 if (cap->ncharC2 != 0) in nv_replace()
5089 AppendCharToRedobuff(cap->ncharC2); in nv_replace()
5094 for (n = cap->count1; n > 0; --n) in nv_replace()
5097 if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y) in nv_replace()
5100 + (cap->nchar == Ctrl_Y ? -1 : 1)); in nv_replace()
5108 ins_char(cap->nchar); in nv_replace()
5110 if (cap->ncharC1 != 0) in nv_replace()
5111 ins_char(cap->ncharC1); in nv_replace()
5112 if (cap->ncharC2 != 0) in nv_replace()
5113 ins_char(cap->ncharC2); in nv_replace()
5121 for (n = cap->count1; n > 0; --n) in nv_replace()
5128 if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y) in nv_replace()
5131 + (cap->nchar == Ctrl_Y ? -1 : 1)); in nv_replace()
5140 ptr[curwin->w_cursor.col] = cap->nchar; in nv_replace()
5143 showmatch(cap->nchar); in nv_replace()
5149 colnr_T start = (colnr_T)(curwin->w_cursor.col - cap->count1); in nv_replace()
5152 (long)cap->count1); in nv_replace()
5154 &ptr[start], (int)cap->count1); in nv_replace()
5160 (colnr_T)(curwin->w_cursor.col - cap->count1)); in nv_replace()
5169 set_last_insert(cap->nchar); in nv_replace()
5226 nv_Replace(cmdarg_T *cap) in nv_Replace() argument
5230 cap->cmdchar = 'c'; in nv_Replace()
5231 cap->nchar = NUL; in nv_Replace()
5234 nv_operator(cap); in nv_Replace()
5236 else if (!checkclearopq(cap->oap)) in nv_Replace()
5244 invoke_edit(cap, FALSE, cap->arg ? 'V' : 'R', FALSE); in nv_Replace()
5253 nv_vreplace(cmdarg_T *cap) in nv_vreplace() argument
5257 cap->cmdchar = 'r'; in nv_vreplace()
5258 cap->nchar = cap->extra_char; in nv_vreplace()
5259 nv_replace(cap); // Do same as "r" in Visual mode for now in nv_vreplace()
5261 else if (!checkclearopq(cap->oap)) in nv_vreplace()
5267 if (cap->extra_char == Ctrl_V) // get another character in nv_vreplace()
5268 cap->extra_char = get_literal(FALSE); in nv_vreplace()
5269 stuffcharReadbuff(cap->extra_char); in nv_vreplace()
5273 invoke_edit(cap, TRUE, 'v', FALSE); in nv_vreplace()
5282 n_swapchar(cmdarg_T *cap) in n_swapchar() argument
5293 if (checkclearopq(cap->oap)) in n_swapchar()
5298 clearopbeep(cap->oap); in n_swapchar()
5302 prep_redo_cmd(cap); in n_swapchar()
5311 for (n = cap->count1; n > 0; --n) in n_swapchar()
5313 did_change |= swapchar(cap->oap->op_type, &curwin->w_cursor); in n_swapchar()
5377 nv_cursormark(cmdarg_T *cap, int flag, pos_T *pos) in nv_cursormark() argument
5380 clearop(cap->oap); in nv_cursormark()
5383 if (cap->cmdchar == '\'' in nv_cursormark()
5384 || cap->cmdchar == '`' in nv_cursormark()
5385 || cap->cmdchar == '[' in nv_cursormark()
5386 || cap->cmdchar == ']') in nv_cursormark()
5394 cap->oap->motion_type = flag ? MLINE : MCHAR; in nv_cursormark()
5395 if (cap->cmdchar == '`') in nv_cursormark()
5396 cap->oap->use_reg_one = TRUE; in nv_cursormark()
5397 cap->oap->inclusive = FALSE; // ignored if not MCHAR in nv_cursormark()
5405 v_visop(cmdarg_T *cap) in v_visop() argument
5411 if (isupper(cap->cmdchar)) in v_visop()
5418 else if (cap->cmdchar == 'C' || cap->cmdchar == 'D') in v_visop()
5421 cap->cmdchar = *(vim_strchr(trans, cap->cmdchar) + 1); in v_visop()
5422 nv_operator(cap); in v_visop()
5429 nv_subst(cmdarg_T *cap) in nv_subst() argument
5439 clearopbeep(cap->oap); in nv_subst()
5445 if (cap->cmdchar == 'S') in nv_subst()
5450 cap->cmdchar = 'c'; in nv_subst()
5451 nv_operator(cap); in nv_subst()
5454 nv_optrans(cap); in nv_subst()
5461 nv_abbrev(cmdarg_T *cap) in nv_abbrev() argument
5463 if (cap->cmdchar == K_DEL || cap->cmdchar == K_KDEL) in nv_abbrev()
5464 cap->cmdchar = 'x'; // DEL key behaves like 'x' in nv_abbrev()
5468 v_visop(cap); in nv_abbrev()
5470 nv_optrans(cap); in nv_abbrev()
5477 nv_optrans(cmdarg_T *cap) in nv_optrans() argument
5485 if (!checkclearopq(cap->oap)) in nv_optrans()
5489 if (cap->cmdchar == 'D' && vim_strchr(p_cpo, CPO_HASH) != NULL) in nv_optrans()
5491 cap->oap->start = curwin->w_cursor; in nv_optrans()
5492 cap->oap->op_type = OP_DELETE; in nv_optrans()
5496 cap->count1 = 1; in nv_optrans()
5497 nv_dollar(cap); in nv_optrans()
5504 if (cap->count0) in nv_optrans()
5505 stuffnumReadbuff(cap->count0); in nv_optrans()
5506 stuffReadbuff(ar[(int)(vim_strchr(str, cap->cmdchar) - str)]); in nv_optrans()
5509 cap->opcount = 0; in nv_optrans()
5517 nv_gomark(cmdarg_T *cap) in nv_gomark() argument
5526 if (cap->cmdchar == 'g') in nv_gomark()
5527 c = cap->extra_char; in nv_gomark()
5529 c = cap->nchar; in nv_gomark()
5530 pos = getmark(c, (cap->oap->op_type == OP_NOP)); in nv_gomark()
5533 if (cap->arg) in nv_gomark()
5542 nv_cursormark(cap, cap->arg, pos); in nv_gomark()
5549 if (cap->oap->op_type == OP_NOP in nv_gomark()
5562 nv_pcmark(cmdarg_T *cap) in nv_pcmark() argument
5571 if (!checkclearopq(cap->oap)) in nv_pcmark()
5573 if (cap->cmdchar == TAB && mod_mask == MOD_MASK_CTRL) in nv_pcmark()
5576 clearopbeep(cap->oap); in nv_pcmark()
5579 if (cap->cmdchar == 'g') in nv_pcmark()
5580 pos = movechangelist((int)cap->count1); in nv_pcmark()
5582 pos = movemark((int)cap->count1); in nv_pcmark()
5589 nv_cursormark(cap, FALSE, pos); in nv_pcmark()
5590 else if (cap->cmdchar == 'g') in nv_pcmark()
5594 else if (cap->count1 < 0) in nv_pcmark()
5600 clearopbeep(cap->oap); in nv_pcmark()
5602 if (cap->oap->op_type == OP_NOP in nv_pcmark()
5610 clearopbeep(cap->oap); in nv_pcmark()
5618 nv_regname(cmdarg_T *cap) in nv_regname() argument
5620 if (checkclearop(cap->oap)) in nv_regname()
5623 if (cap->nchar == '=') in nv_regname()
5624 cap->nchar = get_expr_register(); in nv_regname()
5626 if (cap->nchar != NUL && valid_yank_reg(cap->nchar, FALSE)) in nv_regname()
5628 cap->oap->regname = cap->nchar; in nv_regname()
5629 cap->opcount = cap->count0; // remember count before '"' in nv_regname()
5631 set_reg_var(cap->oap->regname); in nv_regname()
5635 clearopbeep(cap->oap); in nv_regname()
5645 nv_visual(cmdarg_T *cap) in nv_visual() argument
5647 if (cap->cmdchar == Ctrl_Q) in nv_visual()
5648 cap->cmdchar = Ctrl_V; in nv_visual()
5652 if (cap->oap->op_type != OP_NOP) in nv_visual()
5654 motion_force = cap->oap->motion_force = cap->cmdchar; in nv_visual()
5659 VIsual_select = cap->arg; in nv_visual()
5662 if (VIsual_mode == cap->cmdchar) // stop visual mode in nv_visual()
5666 VIsual_mode = cap->cmdchar; in nv_visual()
5675 if (cap->count0 > 0 && resel_VIsual_mode != NUL) in nv_visual()
5682 if (!cap->arg) in nv_visual()
5695 resel_VIsual_line_count * cap->count0 - 1; in nv_visual()
5705 + resel_VIsual_vcol * cap->count0 - 1; in nv_visual()
5720 + resel_VIsual_vcol * cap->count0 - 1; in nv_visual()
5729 if (!cap->arg) in nv_visual()
5732 n_start_visual_mode(cap->cmdchar); in nv_visual()
5734 ++cap->count1; // include one more char in nv_visual()
5735 if (cap->count0 > 0 && --cap->count1 > 0) in nv_visual()
5739 nv_right(cap); in nv_visual()
5741 nv_down(cap); in nv_visual()
5826 nv_window(cmdarg_T *cap) in nv_window() argument
5828 if (cap->nchar == ':') in nv_window()
5831 cap->cmdchar = ':'; in nv_window()
5832 cap->nchar = NUL; in nv_window()
5833 nv_colon(cap); in nv_window()
5835 else if (!checkclearop(cap->oap)) in nv_window()
5836 do_window(cap->nchar, cap->count0, NUL); // everything is in window.c in nv_window()
5843 nv_suspend(cmdarg_T *cap) in nv_suspend() argument
5845 clearop(cap->oap); in nv_suspend()
5855 nv_g_cmd(cmdarg_T *cap) in nv_g_cmd() argument
5857 oparg_T *oap = cap->oap; in nv_g_cmd()
5862 switch (cap->nchar) in nv_g_cmd()
5870 if (!VIsual_active && cap->nchar == Ctrl_A) in nv_g_cmd()
5879 cap->arg = TRUE; in nv_g_cmd()
5880 cap->cmdchar = cap->nchar; in nv_g_cmd()
5881 cap->nchar = NUL; in nv_g_cmd()
5882 nv_addsub(cap); in nv_g_cmd()
5892 cap->arg = TRUE; in nv_g_cmd()
5893 nv_Replace(cap); in nv_g_cmd()
5897 nv_vreplace(cap); in nv_g_cmd()
5959 if (cap->arg) in nv_g_cmd()
5987 cap->nchar = Ctrl_H; in nv_g_cmd()
5994 if (cap->nchar == Ctrl_H) in nv_g_cmd()
5995 cap->cmdchar = Ctrl_V; in nv_g_cmd()
5998 cap->cmdchar = cap->nchar + ('v' - 'h'); in nv_g_cmd()
5999 cap->arg = TRUE; in nv_g_cmd()
6000 nv_visual(cap); in nv_g_cmd()
6008 if (!current_search(cap->count1, cap->nchar == 'n')) in nv_g_cmd()
6022 i = cursor_down(cap->count1, oap->op_type == OP_NOP); in nv_g_cmd()
6025 i = nv_screengo(oap, FORWARD, cap->count1); in nv_g_cmd()
6036 i = cursor_up(cap->count1, oap->op_type == OP_NOP); in nv_g_cmd()
6039 i = nv_screengo(oap, BACKWARD, cap->count1); in nv_g_cmd()
6048 nv_join(cap); in nv_g_cmd()
6080 if (cap->nchar == 'm') in nv_g_cmd()
6105 if (cap->count0 > 0 && cap->count0 <= 100) in nv_g_cmd()
6106 coladvance((colnr_T)(i * cap->count0 / 100)); in nv_g_cmd()
6116 cap->oap->motion_type = MCHAR; in nv_g_cmd()
6117 cap->oap->inclusive = TRUE; in nv_g_cmd()
6119 if (cursor_down((long)(cap->count1 - 1), in nv_g_cmd()
6120 cap->oap->op_type == OP_NOP) == FAIL) in nv_g_cmd()
6121 clearopbeep(cap->oap); in nv_g_cmd()
6135 adjust_for_sel(cap); in nv_g_cmd()
6150 if (cap->count1 == 1) in nv_g_cmd()
6177 else if (nv_screengo(oap, FORWARD, cap->count1 - 1) == FAIL) in nv_g_cmd()
6182 if (cap->count1 > 1) in nv_g_cmd()
6184 (void)cursor_down(cap->count1 - 1, FALSE); in nv_g_cmd()
6218 nv_ident(cap); in nv_g_cmd()
6229 if (bckend_word(cap->count1, cap->nchar == 'E', FALSE) == FAIL) in nv_g_cmd()
6256 cap->cmdchar = 'i'; in nv_g_cmd()
6257 nv_edit(cap); in nv_g_cmd()
6266 invoke_edit(cap, FALSE, 'g', FALSE); in nv_g_cmd()
6276 nv_gotofile(cap); in nv_g_cmd()
6282 cap->arg = TRUE; in nv_g_cmd()
6285 nv_gomark(cap); in nv_g_cmd()
6292 do_sleep(cap->count1 * 1000L, FALSE); in nv_g_cmd()
6309 if (cap->count0 == 8) in nv_g_cmd()
6325 cap->arg = FALSE; in nv_g_cmd()
6326 nv_goto(cap); in nv_g_cmd()
6348 nv_operator(cap); in nv_g_cmd()
6358 nv_gd(oap, cap->nchar, (int)cap->count0); in nv_g_cmd()
6381 (void)do_mouse(oap, cap->nchar, BACKWARD, cap->count1, 0); in nv_g_cmd()
6392 nv_put(cap); in nv_g_cmd()
6398 goto_byte(cap->count0); in nv_g_cmd()
6406 clearopbeep(cap->oap); in nv_g_cmd()
6417 nv_pcmark(cap); in nv_g_cmd()
6421 cap->count1 = -cap->count1; in nv_g_cmd()
6422 nv_pcmark(cap); in nv_g_cmd()
6428 goto_tabpage((int)cap->count0); in nv_g_cmd()
6432 goto_tabpage(-(int)cap->count1); in nv_g_cmd()
6443 undo_time(cap->nchar == '-' ? -cap->count1 : cap->count1, in nv_g_cmd()
6457 n_opencmd(cmdarg_T *cap) in n_opencmd() argument
6463 if (!checkclearopq(cap->oap)) in n_opencmd()
6466 if (cap->cmdchar == 'O') in n_opencmd()
6476 (cap->cmdchar == 'O' ? 1 : 0)), in n_opencmd()
6478 (cap->cmdchar == 'o' ? 1 : 0)) in n_opencmd()
6480 && open_line(cap->cmdchar == 'O' ? BACKWARD : FORWARD, in n_opencmd()
6495 cap->count1 = 1; in n_opencmd()
6496 invoke_edit(cap, FALSE, cap->cmdchar, TRUE); in n_opencmd()
6505 nv_dot(cmdarg_T *cap) in nv_dot() argument
6507 if (!checkclearopq(cap->oap)) in nv_dot()
6514 if (start_redo(cap->count0, restart_edit != 0 && !arrow_used) == FAIL) in nv_dot()
6515 clearopbeep(cap->oap); in nv_dot()
6523 nv_redo(cmdarg_T *cap) in nv_redo() argument
6525 if (!checkclearopq(cap->oap)) in nv_redo()
6527 u_redo((int)cap->count1); in nv_redo()
6536 nv_Undo(cmdarg_T *cap) in nv_Undo() argument
6539 if (cap->oap->op_type == OP_UPPER || VIsual_active) in nv_Undo()
6542 cap->cmdchar = 'g'; in nv_Undo()
6543 cap->nchar = 'U'; in nv_Undo()
6544 nv_operator(cap); in nv_Undo()
6546 else if (!checkclearopq(cap->oap)) in nv_Undo()
6558 nv_tilde(cmdarg_T *cap) in nv_tilde() argument
6560 if (!p_to && !VIsual_active && cap->oap->op_type != OP_TILDE) in nv_tilde()
6565 clearopbeep(cap->oap); in nv_tilde()
6569 n_swapchar(cap); in nv_tilde()
6572 nv_operator(cap); in nv_tilde()
6580 nv_operator(cmdarg_T *cap) in nv_operator() argument
6584 op_type = get_op_type(cap->cmdchar, cap->nchar); in nv_operator()
6588 clearopbeep(cap->oap); in nv_operator()
6593 if (op_type == cap->oap->op_type) // double operator works on lines in nv_operator()
6594 nv_lineop(cap); in nv_operator()
6595 else if (!checkclearop(cap->oap)) in nv_operator()
6597 cap->oap->start = curwin->w_cursor; in nv_operator()
6598 cap->oap->op_type = op_type; in nv_operator()
6636 nv_lineop(cmdarg_T *cap) in nv_lineop() argument
6638 cap->oap->motion_type = MLINE; in nv_lineop()
6639 if (cursor_down(cap->count1 - 1L, cap->oap->op_type == OP_NOP) == FAIL) in nv_lineop()
6640 clearopbeep(cap->oap); in nv_lineop()
6641 else if ( (cap->oap->op_type == OP_DELETE // only with linewise motions in nv_lineop()
6642 && cap->oap->motion_force != 'v' in nv_lineop()
6643 && cap->oap->motion_force != Ctrl_V) in nv_lineop()
6644 || cap->oap->op_type == OP_LSHIFT in nv_lineop()
6645 || cap->oap->op_type == OP_RSHIFT) in nv_lineop()
6647 else if (cap->oap->op_type != OP_YANK) // 'Y' does not move cursor in nv_lineop()
6655 nv_home(cmdarg_T *cap) in nv_home() argument
6659 nv_goto(cap); in nv_home()
6662 cap->count0 = 1; in nv_home()
6663 nv_pipe(cap); in nv_home()
6673 nv_pipe(cmdarg_T *cap) in nv_pipe() argument
6675 cap->oap->motion_type = MCHAR; in nv_pipe()
6676 cap->oap->inclusive = FALSE; in nv_pipe()
6678 if (cap->count0 > 0) in nv_pipe()
6680 coladvance((colnr_T)(cap->count0 - 1)); in nv_pipe()
6681 curwin->w_curswant = (colnr_T)(cap->count0 - 1); in nv_pipe()
6695 nv_bck_word(cmdarg_T *cap) in nv_bck_word() argument
6697 cap->oap->motion_type = MCHAR; in nv_bck_word()
6698 cap->oap->inclusive = FALSE; in nv_bck_word()
6700 if (bck_word(cap->count1, cap->arg, FALSE) == FAIL) in nv_bck_word()
6701 clearopbeep(cap->oap); in nv_bck_word()
6703 else if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_bck_word()
6713 nv_wordcmd(cmdarg_T *cap) in nv_wordcmd() argument
6723 if (cap->cmdchar == 'e' || cap->cmdchar == 'E') in nv_wordcmd()
6727 cap->oap->inclusive = word_end; in nv_wordcmd()
6732 if (!word_end && cap->oap->op_type == OP_CHANGE) in nv_wordcmd()
6745 if (cap->count1 == 1 && vim_strchr(p_cpo, CPO_CW) != NULL) in nv_wordcmd()
6747 cap->oap->inclusive = TRUE; in nv_wordcmd()
6748 cap->oap->motion_type = MCHAR; in nv_wordcmd()
6765 cap->oap->inclusive = TRUE; in nv_wordcmd()
6772 cap->oap->motion_type = MCHAR; in nv_wordcmd()
6775 n = end_word(cap->count1, cap->arg, flag, FALSE); in nv_wordcmd()
6777 n = fwd_word(cap->count1, cap->arg, cap->oap->op_type != OP_NOP); in nv_wordcmd()
6782 adjust_cursor(cap->oap); in nv_wordcmd()
6784 if (n == FAIL && cap->oap->op_type == OP_NOP) in nv_wordcmd()
6785 clearopbeep(cap->oap); in nv_wordcmd()
6788 adjust_for_sel(cap); in nv_wordcmd()
6790 if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_wordcmd()
6825 nv_beginline(cmdarg_T *cap) in nv_beginline() argument
6827 cap->oap->motion_type = MCHAR; in nv_beginline()
6828 cap->oap->inclusive = FALSE; in nv_beginline()
6829 beginline(cap->arg); in nv_beginline()
6831 if ((fdo_flags & FDO_HOR) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_beginline()
6842 adjust_for_sel(cmdarg_T *cap) in adjust_for_sel() argument
6844 if (VIsual_active && cap->oap->inclusive && *p_sel == 'e' in adjust_for_sel()
6851 cap->oap->inclusive = FALSE; in adjust_for_sel()
6893 nv_select(cmdarg_T *cap) in nv_select() argument
6899 cap->nchar = 'v'; // fake "gv" command in nv_select()
6900 cap->arg = TRUE; in nv_select()
6901 nv_g_cmd(cap); in nv_select()
6911 nv_goto(cmdarg_T *cap) in nv_goto() argument
6915 if (cap->arg) in nv_goto()
6919 cap->oap->motion_type = MLINE; in nv_goto()
6923 if (cap->count0 != 0) in nv_goto()
6924 lnum = cap->count0; in nv_goto()
6932 if ((fdo_flags & FDO_JUMP) && KeyTyped && cap->oap->op_type == OP_NOP) in nv_goto()
6941 nv_normal(cmdarg_T *cap) in nv_normal() argument
6943 if (cap->nchar == Ctrl_N || cap->nchar == Ctrl_G) in nv_normal()
6945 clearop(cap->oap); in nv_normal()
6959 if (cap->nchar == Ctrl_G && p_im) in nv_normal()
6963 clearopbeep(cap->oap); in nv_normal()
6971 nv_esc(cmdarg_T *cap) in nv_esc() argument
6975 no_reason = (cap->oap->op_type == OP_NOP in nv_esc()
6976 && cap->opcount == 0 in nv_esc()
6977 && cap->count0 == 0 in nv_esc()
6978 && cap->oap->regname == 0 in nv_esc()
6981 if (cap->arg) // TRUE for CTRL-C in nv_esc()
7029 clearop(cap->oap); in nv_esc()
7063 nv_edit(cmdarg_T *cap) in nv_edit() argument
7066 if (cap->cmdchar == K_INS || cap->cmdchar == K_KINS) in nv_edit()
7067 cap->cmdchar = 'i'; in nv_edit()
7070 if (VIsual_active && (cap->cmdchar == 'A' || cap->cmdchar == 'I')) in nv_edit()
7076 clearop(cap->oap); in nv_edit()
7081 v_visop(cap); in nv_edit()
7085 else if ((cap->cmdchar == 'a' || cap->cmdchar == 'i') in nv_edit()
7086 && (cap->oap->op_type != OP_NOP || VIsual_active)) in nv_edit()
7089 nv_object(cap); in nv_edit()
7091 clearopbeep(cap->oap); in nv_edit()
7097 clearop(cap->oap); in nv_edit()
7106 clearop(cap->oap); in nv_edit()
7107 if (cap->cmdchar == K_PS) in nv_edit()
7111 else if (cap->cmdchar == K_PS && VIsual_active) in nv_edit()
7120 cap->oap->regname = '1'; in nv_edit()
7123 cap->oap->regname = '-'; in nv_edit()
7124 cap->cmdchar = 'd'; in nv_edit()
7125 cap->nchar = NUL; in nv_edit()
7126 nv_operator(cap); in nv_edit()
7127 do_pending_operator(cap, 0, FALSE); in nv_edit()
7128 cap->cmdchar = K_PS; in nv_edit()
7137 invoke_edit(cap, FALSE, cap->cmdchar, FALSE); in nv_edit()
7139 else if (!checkclearopq(cap->oap)) in nv_edit()
7141 switch (cap->cmdchar) in nv_edit()
7174 if (curwin->w_cursor.coladd && cap->cmdchar != 'A') in nv_edit()
7185 invoke_edit(cap, FALSE, cap->cmdchar, FALSE); in nv_edit()
7187 else if (cap->cmdchar == K_PS) in nv_edit()
7197 cmdarg_T *cap, in invoke_edit() argument
7215 if (edit(cmd, startln, cap->count1)) in invoke_edit()
7216 cap->retval |= CA_COMMAND_BUSY; in invoke_edit()
7228 cmdarg_T *cap) in nv_object() argument
7234 if (cap->cmdchar == 'i') in nv_object()
7243 switch (cap->nchar) in nv_object()
7246 flag = current_word(cap->oap, cap->count1, include, FALSE); in nv_object()
7249 flag = current_word(cap->oap, cap->count1, include, TRUE); in nv_object()
7254 flag = current_block(cap->oap, cap->count1, include, '(', ')'); in nv_object()
7259 flag = current_block(cap->oap, cap->count1, include, '{', '}'); in nv_object()
7263 flag = current_block(cap->oap, cap->count1, include, '[', ']'); in nv_object()
7267 flag = current_block(cap->oap, cap->count1, include, '<', '>'); in nv_object()
7276 cap->retval |= CA_NO_ADJ_OP_END; in nv_object()
7277 flag = current_tagblock(cap->oap, cap->count1, include); in nv_object()
7280 flag = current_par(cap->oap, cap->count1, include, 'p'); in nv_object()
7283 flag = current_sent(cap->oap, cap->count1, include); in nv_object()
7288 flag = current_quote(cap->oap, cap->count1, include, in nv_object()
7289 cap->nchar); in nv_object()
7303 clearopbeep(cap->oap); in nv_object()
7314 nv_record(cmdarg_T *cap) in nv_record() argument
7316 if (cap->oap->op_type == OP_FORMAT) in nv_record()
7319 cap->cmdchar = 'g'; in nv_record()
7320 cap->nchar = 'q'; in nv_record()
7321 nv_operator(cap); in nv_record()
7323 else if (!checkclearop(cap->oap)) in nv_record()
7326 if (cap->nchar == ':' || cap->nchar == '/' || cap->nchar == '?') in nv_record()
7328 stuffcharReadbuff(cap->nchar); in nv_record()
7335 if (reg_executing == 0 && do_record(cap->nchar) == FAIL) in nv_record()
7336 clearopbeep(cap->oap); in nv_record()
7344 nv_at(cmdarg_T *cap) in nv_at() argument
7346 if (checkclearop(cap->oap)) in nv_at()
7349 if (cap->nchar == '=') in nv_at()
7355 while (cap->count1-- && !got_int) in nv_at()
7357 if (do_execreg(cap->nchar, FALSE, FALSE, FALSE) == FAIL) in nv_at()
7359 clearopbeep(cap->oap); in nv_at()
7370 nv_halfpage(cmdarg_T *cap) in nv_halfpage() argument
7372 if ((cap->cmdchar == Ctrl_U && curwin->w_cursor.lnum == 1) in nv_halfpage()
7373 || (cap->cmdchar == Ctrl_D in nv_halfpage()
7375 clearopbeep(cap->oap); in nv_halfpage()
7376 else if (!checkclearop(cap->oap)) in nv_halfpage()
7377 halfpage(cap->cmdchar == Ctrl_D, cap->count0); in nv_halfpage()
7384 nv_join(cmdarg_T *cap) in nv_join() argument
7387 nv_operator(cap); in nv_join()
7388 else if (!checkclearop(cap->oap)) in nv_join()
7390 if (cap->count0 <= 1) in nv_join()
7391 cap->count0 = 2; // default for join is two lines! in nv_join()
7392 if (curwin->w_cursor.lnum + cap->count0 - 1 > in nv_join()
7396 if (cap->count0 <= 2) in nv_join()
7398 clearopbeep(cap->oap); in nv_join()
7401 cap->count0 = curbuf->b_ml.ml_line_count in nv_join()
7405 prep_redo(cap->oap->regname, cap->count0, in nv_join()
7406 NUL, cap->cmdchar, NUL, NUL, cap->nchar); in nv_join()
7407 (void)do_join(cap->count0, cap->nchar == NUL, TRUE, TRUE, TRUE); in nv_join()
7415 nv_put(cmdarg_T *cap) in nv_put() argument
7417 nv_put_opt(cap, FALSE); in nv_put()
7425 nv_put_opt(cmdarg_T *cap, int fix_indent) in nv_put_opt() argument
7434 if (cap->oap->op_type != OP_NOP) in nv_put_opt()
7438 if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'p') in nv_put_opt()
7440 clearop(cap->oap); in nv_put_opt()
7441 nv_diffgetput(TRUE, cap->opcount); in nv_put_opt()
7445 clearopbeep(cap->oap); in nv_put_opt()
7450 clearopbeep(cap->oap); in nv_put_opt()
7457 dir = (cap->cmdchar == ']' && cap->nchar == 'p') in nv_put_opt()
7462 dir = (cap->cmdchar == 'P' in nv_put_opt()
7463 || ((cap->cmdchar == 'g' || cap->cmdchar == 'z') in nv_put_opt()
7464 && cap->nchar == 'P')) ? BACKWARD : FORWARD; in nv_put_opt()
7465 prep_redo_cmd(cap); in nv_put_opt()
7466 if (cap->cmdchar == 'g') in nv_put_opt()
7468 else if (cap->cmdchar == 'z') in nv_put_opt()
7478 regname = cap->oap->regname; in nv_put_opt()
7496 cap->cmdchar = 'd'; in nv_put_opt()
7497 cap->nchar = NUL; in nv_put_opt()
7498 cap->oap->regname = NUL; in nv_put_opt()
7500 nv_operator(cap); in nv_put_opt()
7501 do_pending_operator(cap, 0, FALSE); in nv_put_opt()
7506 cap->oap->regname = regname; in nv_put_opt()
7536 do_put(cap->oap->regname, NULL, dir, cap->count1, flags); in nv_put_opt()
7576 nv_open(cmdarg_T *cap) in nv_open() argument
7580 if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'o') in nv_open()
7582 clearop(cap->oap); in nv_open()
7583 nv_diffgetput(FALSE, cap->opcount); in nv_open()
7588 v_swap_corners(cap->cmdchar); in nv_open()
7591 clearopbeep(cap->oap); in nv_open()
7594 n_opencmd(cap); in nv_open()
7599 nv_nbcmd(cmdarg_T *cap) in nv_nbcmd() argument
7601 netbeans_keycommand(cap->nchar); in nv_nbcmd()
7607 nv_drop(cmdarg_T *cap UNUSED) in nv_drop()
7619 nv_cursorhold(cmdarg_T *cap) in nv_cursorhold() argument
7623 cap->retval |= CA_COMMAND_BUSY; // don't call edit() now in nv_cursorhold()