mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
updated for version 7.0-155
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 7.0. Last change: 2006 Sep 22
|
*eval.txt* For Vim version 7.0. Last change: 2006 Nov 01
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1374,6 +1374,21 @@ v:lnum Line number for the 'foldexpr' |fold-expr| and 'indentexpr'
|
|||||||
'guitabtooltip'. Only valid while one of these expressions is
|
'guitabtooltip'. Only valid while one of these expressions is
|
||||||
being evaluated. Read-only when in the |sandbox|.
|
being evaluated. Read-only when in the |sandbox|.
|
||||||
|
|
||||||
|
*v:mouse_win* *mouse_win-variable*
|
||||||
|
v:mouse_win Window number for a mouse click obtained with |getchar()|.
|
||||||
|
First window has number 1, like with |winnr()|. The value is
|
||||||
|
zero when there was no mouse button click.
|
||||||
|
|
||||||
|
*v:mouse_lnum* *mouse_lnum-variable*
|
||||||
|
v:mouse_lnum Line number for a mouse click obtained with |getchar()|.
|
||||||
|
This is the text line number, not the screen line number. The
|
||||||
|
value is zero when there was no mouse button click.
|
||||||
|
|
||||||
|
*v:mouse_col* *mouse_col-variable*
|
||||||
|
v:mouse_col Column number for a mouse click obtained with |getchar()|.
|
||||||
|
This is the screen column number, like with |virtcol()|. The
|
||||||
|
value is zero when there was no mouse button click.
|
||||||
|
|
||||||
*v:prevcount* *prevcount-variable*
|
*v:prevcount* *prevcount-variable*
|
||||||
v:prevcount The count given for the last but one Normal mode command.
|
v:prevcount The count given for the last but one Normal mode command.
|
||||||
This is the v:count value of the previous command. Useful if
|
This is the v:count value of the previous command. Useful if
|
||||||
@@ -2702,6 +2717,17 @@ getchar([expr]) *getchar()*
|
|||||||
one-byte character it is the character itself as a number.
|
one-byte character it is the character itself as a number.
|
||||||
Use nr2char() to convert it to a String.
|
Use nr2char() to convert it to a String.
|
||||||
|
|
||||||
|
When the user clicks a mouse button, the mouse event will be
|
||||||
|
returned. The position can then be found in |v:mouse_col|,
|
||||||
|
|v:mouse_lnum| and |v:mouse_win|. This example positions the
|
||||||
|
mouse as it would normally happen: >
|
||||||
|
let c = getchar()
|
||||||
|
if c == "\<LeftMouse>" && v:mouse_win > 0
|
||||||
|
exe v:mouse_win . "wincmd w"
|
||||||
|
exe v:mouse_lnum
|
||||||
|
exe "normal " . v:mouse_col . "|"
|
||||||
|
endif
|
||||||
|
<
|
||||||
There is no prompt, you will somehow have to make clear to the
|
There is no prompt, you will somehow have to make clear to the
|
||||||
user that a character has to be typed.
|
user that a character has to be typed.
|
||||||
There is no mapping for the character.
|
There is no mapping for the character.
|
||||||
|
54
src/eval.c
54
src/eval.c
@@ -343,6 +343,9 @@ static struct vimvar
|
|||||||
{VV_NAME("swapchoice", VAR_STRING), 0},
|
{VV_NAME("swapchoice", VAR_STRING), 0},
|
||||||
{VV_NAME("swapcommand", VAR_STRING), VV_RO},
|
{VV_NAME("swapcommand", VAR_STRING), VV_RO},
|
||||||
{VV_NAME("char", VAR_STRING), VV_RO},
|
{VV_NAME("char", VAR_STRING), VV_RO},
|
||||||
|
{VV_NAME("mouse_win", VAR_NUMBER), 0},
|
||||||
|
{VV_NAME("mouse_lnum", VAR_NUMBER), 0},
|
||||||
|
{VV_NAME("mouse_col", VAR_NUMBER), 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* shorthand */
|
/* shorthand */
|
||||||
@@ -9855,6 +9858,10 @@ f_getchar(argvars, rettv)
|
|||||||
--no_mapping;
|
--no_mapping;
|
||||||
--allow_keys;
|
--allow_keys;
|
||||||
|
|
||||||
|
vimvars[VV_MOUSE_WIN].vv_nr = 0;
|
||||||
|
vimvars[VV_MOUSE_LNUM].vv_nr = 0;
|
||||||
|
vimvars[VV_MOUSE_COL].vv_nr = 0;
|
||||||
|
|
||||||
rettv->vval.v_number = n;
|
rettv->vval.v_number = n;
|
||||||
if (IS_SPECIAL(n) || mod_mask != 0)
|
if (IS_SPECIAL(n) || mod_mask != 0)
|
||||||
{
|
{
|
||||||
@@ -9883,6 +9890,53 @@ f_getchar(argvars, rettv)
|
|||||||
temp[i++] = NUL;
|
temp[i++] = NUL;
|
||||||
rettv->v_type = VAR_STRING;
|
rettv->v_type = VAR_STRING;
|
||||||
rettv->vval.v_string = vim_strsave(temp);
|
rettv->vval.v_string = vim_strsave(temp);
|
||||||
|
|
||||||
|
#ifdef FEAT_MOUSE
|
||||||
|
if (n == K_LEFTMOUSE
|
||||||
|
|| n == K_LEFTMOUSE_NM
|
||||||
|
|| n == K_LEFTDRAG
|
||||||
|
|| n == K_LEFTRELEASE
|
||||||
|
|| n == K_LEFTRELEASE_NM
|
||||||
|
|| n == K_MIDDLEMOUSE
|
||||||
|
|| n == K_MIDDLEDRAG
|
||||||
|
|| n == K_MIDDLERELEASE
|
||||||
|
|| n == K_RIGHTMOUSE
|
||||||
|
|| n == K_RIGHTDRAG
|
||||||
|
|| n == K_RIGHTRELEASE
|
||||||
|
|| n == K_X1MOUSE
|
||||||
|
|| n == K_X1DRAG
|
||||||
|
|| n == K_X1RELEASE
|
||||||
|
|| n == K_X2MOUSE
|
||||||
|
|| n == K_X2DRAG
|
||||||
|
|| n == K_X2RELEASE
|
||||||
|
|| n == K_MOUSEDOWN
|
||||||
|
|| n == K_MOUSEUP)
|
||||||
|
{
|
||||||
|
int row = mouse_row;
|
||||||
|
int col = mouse_col;
|
||||||
|
win_T *win;
|
||||||
|
linenr_T lnum;
|
||||||
|
# ifdef FEAT_WINDOWS
|
||||||
|
win_T *wp;
|
||||||
|
# endif
|
||||||
|
int n = 1;
|
||||||
|
|
||||||
|
if (row >= 0 && col >= 0)
|
||||||
|
{
|
||||||
|
/* Find the window at the mouse coordinates and compute the
|
||||||
|
* text position. */
|
||||||
|
win = mouse_find_win(&row, &col);
|
||||||
|
(void)mouse_comp_pos(win, &row, &col, &lnum);
|
||||||
|
# ifdef FEAT_WINDOWS
|
||||||
|
for (wp = firstwin; wp != win; wp = wp->w_next)
|
||||||
|
++n;
|
||||||
|
# endif
|
||||||
|
vimvars[VV_MOUSE_WIN].vv_nr = n;
|
||||||
|
vimvars[VV_MOUSE_LNUM].vv_nr = lnum;
|
||||||
|
vimvars[VV_MOUSE_COL].vv_nr = col + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -666,6 +666,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
155,
|
||||||
/**/
|
/**/
|
||||||
154,
|
154,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -1669,7 +1669,10 @@ int vim_memcmp __ARGS((void *, void *, size_t));
|
|||||||
#define VV_SWAPCHOICE 46
|
#define VV_SWAPCHOICE 46
|
||||||
#define VV_SWAPCOMMAND 47
|
#define VV_SWAPCOMMAND 47
|
||||||
#define VV_CHAR 48
|
#define VV_CHAR 48
|
||||||
#define VV_LEN 49 /* number of v: vars */
|
#define VV_MOUSE_WIN 49
|
||||||
|
#define VV_MOUSE_LNUM 50
|
||||||
|
#define VV_MOUSE_COL 51
|
||||||
|
#define VV_LEN 52 /* number of v: vars */
|
||||||
|
|
||||||
#ifdef FEAT_CLIPBOARD
|
#ifdef FEAT_CLIPBOARD
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user