1
0
forked from aniani/vim

updated for version 7.1-068

This commit is contained in:
Bram Moolenaar
2007-08-12 14:55:56 +00:00
parent a2993e1340
commit 67f7131efa
4 changed files with 57 additions and 13 deletions

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.1. Last change: 2007 May 11 *options.txt* For Vim version 7.1. Last change: 2007 Aug 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2415,8 +2415,8 @@ A jump table for the options with a short description can be found at |Q_op|.
When mixing vertically and horizontally split windows, a minimal size When mixing vertically and horizontally split windows, a minimal size
is computed and some windows may be larger if there is room. The is computed and some windows may be larger if there is room. The
'eadirection' option tells in which direction the size is affected. 'eadirection' option tells in which direction the size is affected.
Changing the height of a window can be avoided by setting Changing the height and width of a window can be avoided by setting
'winfixheight'. 'winfixheight' and 'winfixwidth', respectively.
*'equalprg'* *'ep'* *'equalprg'* *'ep'*
'equalprg' 'ep' string (default "") 'equalprg' 'ep' string (default "")

View File

@@ -132,7 +132,8 @@ CTRL-W CTRL-S *CTRL-W_CTRL-S*
the same file. Make new window N high (default is to use half the same file. Make new window N high (default is to use half
the height of the current window). Reduces the current window the height of the current window). Reduces the current window
height to create room (and others, if the 'equalalways' option height to create room (and others, if the 'equalalways' option
is set and 'eadirection' isn't "hor"). is set, 'eadirection' isn't "hor", and one of them is higher
than the current or the new window).
Note: CTRL-S does not work on all terminals and might block Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again. further input, use CTRL-Q to get going again.
Also see |++opt| and |+cmd|. Also see |++opt| and |+cmd|.
@@ -140,9 +141,13 @@ CTRL-W CTRL-S *CTRL-W_CTRL-S*
CTRL-W CTRL-V *CTRL-W_CTRL-V* CTRL-W CTRL-V *CTRL-W_CTRL-V*
CTRL-W v *CTRL-W_v* CTRL-W v *CTRL-W_v*
:[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit* :[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit*
Like |:split|, but split vertically. If 'equalalways' is set Like |:split|, but split vertically. The windows will be
and 'eadirection' isn't "ver" the windows will be spread out spread out horizontally if
horizontally, unless a width was specified. 1. a width was not specified,
2. 'equalalways' is set,
3. 'eadirection' isn't "ver", and
4. one of the other windows are wider than the current or new
window.
Note: In other places CTRL-Q does the same as CTRL-V, but here Note: In other places CTRL-Q does the same as CTRL-V, but here
it doesn't! it doesn't!

View File

@@ -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 */
/**/
68,
/**/ /**/
67, 67,
/**/ /**/

View File

@@ -733,7 +733,6 @@ win_split_ins(size, flags, newwin, dir)
if (flags & WSP_VERT) if (flags & WSP_VERT)
{ {
layout = FR_ROW; layout = FR_ROW;
do_equal = (p_ea && new_size == 0 && *p_ead != 'v');
/* /*
* Check if we are able to split the current window and compute its * Check if we are able to split the current window and compute its
@@ -770,16 +769,31 @@ win_split_ins(size, flags, newwin, dir)
* instead, if possible. */ * instead, if possible. */
if (oldwin->w_p_wfw) if (oldwin->w_p_wfw)
win_setwidth_win(oldwin->w_width + new_size, oldwin); win_setwidth_win(oldwin->w_width + new_size, oldwin);
/* Only make all windows the same width if one of them (except oldwin)
* is wider than one of the split windows. */
if (!do_equal && p_ea && size == 0 && *p_ead != 'v'
&& oldwin->w_frame->fr_parent != NULL)
{
frp = oldwin->w_frame->fr_parent->fr_child;
while (frp != NULL)
{
if (frp->fr_win != oldwin && frp->fr_win != NULL
&& (frp->fr_win->w_width > new_size
|| frp->fr_win->w_width > oldwin->w_width
- new_size - STATUS_HEIGHT))
{
do_equal = TRUE;
break;
}
frp = frp->fr_next;
}
}
} }
else else
#endif #endif
{ {
layout = FR_COL; layout = FR_COL;
do_equal = (p_ea && new_size == 0
#ifdef FEAT_VERTSPLIT
&& *p_ead != 'h'
#endif
);
/* /*
* Check if we are able to split the current window and compute its * Check if we are able to split the current window and compute its
@@ -832,6 +846,29 @@ win_split_ins(size, flags, newwin, dir)
if (need_status) if (need_status)
oldwin_height -= STATUS_HEIGHT; oldwin_height -= STATUS_HEIGHT;
} }
/* Only make all windows the same height if one of them (except oldwin)
* is higher than one of the split windows. */
if (!do_equal && p_ea && size == 0
#ifdef FEAT_VERTSPLIT
&& *p_ead != 'h'
#endif
&& oldwin->w_frame->fr_parent != NULL)
{
frp = oldwin->w_frame->fr_parent->fr_child;
while (frp != NULL)
{
if (frp->fr_win != oldwin && frp->fr_win != NULL
&& (frp->fr_win->w_height > new_size
|| frp->fr_win->w_height > oldwin_height - new_size
- STATUS_HEIGHT))
{
do_equal = TRUE;
break;
}
frp = frp->fr_next;
}
}
} }
/* /*