Mercurial > vim
changeset 598:05c67faedc8b
updated for version 7.0170
author | vimboss |
---|---|
date | Wed, 14 Dec 2005 21:59:55 +0000 |
parents | b9975513fe24 |
children | 2aac9eed5fbb |
files | runtime/doc/index.txt src/ex_docmd.c src/normal.c |
diffstat | 3 files changed, 38 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.0aa. Last change: 2005 Dec 12 +*index.txt* For Vim version 7.0aa. Last change: 2005 Dec 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1354,7 +1354,7 @@ The commands are sorted on the non-optio buffer list |:scriptnames| :scrip[tnames] list names of all sourced Vim scripts |:scriptencoding| :scripte[ncoding] encoding used in sourced Vim script -|:scscope| :scs[cope] split window and execute cscope command +|:scscope| :scs[cope] split window and execute cscope command |:set| :se[t] show or set options |:setfiletype| :setf[iletype] set 'filetype', unless it was set already |:setglobal| :setg[lobal] show global values of options @@ -1388,6 +1388,7 @@ The commands are sorted on the non-optio |:stop| :st[op] suspend the editor or escape to a shell |:stag| :sta[g] split window and jump to a tag |:startinsert| :star[tinsert] start Insert mode +|:startgreplace| :startg[replace] start Virtual Replace mode |:startreplace| :startr[eplace] start Replace mode |:stopinsert|| :stopi[nsert] stop Insert mode |:stjump| :stj[ump] do ":tjump" and split window
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -8503,7 +8503,7 @@ ex_normal(eap) } /* - * ":startinsert" and ":startreplace" + * ":startinsert", ":startreplace" and ":startgreplace" */ static void ex_startinsert(eap) @@ -8521,19 +8521,17 @@ ex_startinsert(eap) if (State & INSERT) return; - if (eap->forceit) - { - if (eap->cmdidx == CMD_startinsert) - restart_edit = 'a'; - else - restart_edit = 'R'; - } + if (eap->cmdidx == CMD_startinsert) + restart_edit = 'a'; + else if (eap->cmdidx == CMD_startreplace) + restart_edit = 'R'; else + restart_edit = 'V'; + + if (!eap->forceit) { if (eap->cmdidx == CMD_startinsert) restart_edit = 'i'; - else - restart_edit = 'R'; curwin->w_curswant = 0; /* avoid MAXCOL */ } }
--- a/src/normal.c +++ b/src/normal.c @@ -2277,11 +2277,13 @@ do_mouse(oap, c, dir, count, fixindent) got_click = FALSE; } +#ifndef FEAT_VISUAL /* - * ALT is currently ignored + * ALT is only used for starging/extending Visual mode. */ if ((mod_mask & MOD_MASK_ALT)) return FALSE; +#endif /* * CTRL right mouse button does CTRL-T @@ -2313,9 +2315,12 @@ do_mouse(oap, c, dir, count, fixindent) && (!is_click || (mod_mask & MOD_MASK_MULTI_CLICK) || which_button == MOUSE_MIDDLE) - && !((mod_mask & MOD_MASK_SHIFT) + && !((mod_mask & (MOD_MASK_SHIFT|MOD_MASK_ALT)) && mouse_model_popup() && which_button == MOUSE_LEFT) + && !((mod_mask & MOD_MASK_ALT) + && !mouse_model_popup() + && which_button == MOUSE_RIGHT) ) return FALSE; @@ -2413,6 +2418,7 @@ do_mouse(oap, c, dir, count, fixindent) * When 'mousemodel' is "popup" or "popup_setpos", translate mouse events: * right button up -> pop-up menu * shift-left button -> right button + * alt-left button -> alt-right button */ if (mouse_model_popup()) { @@ -2504,7 +2510,8 @@ do_mouse(oap, c, dir, count, fixindent) return FALSE; #endif } - if (which_button == MOUSE_LEFT && (mod_mask & MOD_MASK_SHIFT)) + if (which_button == MOUSE_LEFT + && (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_ALT))) { which_button = MOUSE_RIGHT; mod_mask &= ~MOD_MASK_SHIFT; @@ -2641,6 +2648,10 @@ do_mouse(oap, c, dir, count, fixindent) if (start_visual.lnum) /* right click in visual mode */ { + /* When ALT is pressed make Visual mode blockwise. */ + if (mod_mask & MOD_MASK_ALT) + VIsual_mode = Ctrl_V; + /* * In Visual-block mode, divide the area in four, pick up the corner * that is in the quarter that the cursor is in. @@ -2845,7 +2856,13 @@ do_mouse(oap, c, dir, count, fixindent) setmouse(); } if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_2CLICK) - VIsual_mode = 'v'; + { + /* Double click with ALT pressed makes it blockwise. */ + if (mod_mask & MOD_MASK_ALT) + VIsual_mode = Ctrl_V; + else + VIsual_mode = 'v'; + } else if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_3CLICK) VIsual_mode = 'V'; else if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_4CLICK) @@ -2921,7 +2938,12 @@ do_mouse(oap, c, dir, count, fixindent) redraw_curbuf_later(INVERTED); /* update the inversion */ } else if (VIsual_active && !old_active) - VIsual_mode = 'v'; + { + if (mod_mask & MOD_MASK_ALT) + VIsual_mode = Ctrl_V; + else + VIsual_mode = 'v'; + } /* If Visual mode changed show it later. */ if (p_smd && (VIsual_active != old_active || VIsual_mode != old_mode))