0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.0222

This commit is contained in:
Bram Moolenaar
2006-03-12 22:05:10 +00:00
parent 1fc0046932
commit 600dddcf66
6 changed files with 160 additions and 27 deletions

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.0aa. Last change: 2006 Mar 11 *options.txt* For Vim version 7.0aa. Last change: 2006 Mar 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2044,6 +2044,28 @@ A jump table for the options with a short description can be found at |Q_op|.
Give messages when adding a cscope database. See |cscopeverbose|. Give messages when adding a cscope database. See |cscopeverbose|.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'cursorcolumn'* *'cuc'* *'nocursorcolumn'* *'nocuc'*
'cursorcolumn' 'cuc' boolean (default off)
local to window
{not in Vi}
{not available when compiled without the |+syntax|
feature}
Highlight the screen column of the cursor with CursorColumn
|hl-CursorColumn|. Useful to align text. Will make screen redrawing
slower.
*'cursorline'* *'cul'* *'nocursorline'* *'nocul'*
'cursorline' 'cul' boolean (default off)
local to window
{not in Vi}
{not available when compiled without the |+syntax|
feature}
Highlight the screen line of the cursor with CursorLine
|hl-CursorLine|. Useful to easily spot the cursor. Will make screen
redrawing slower.
*'debug'* *'debug'*
'debug' string (default "") 'debug' string (default "")
global global

View File

@@ -2,7 +2,7 @@
" Maintainer: Georg Dahn <gorgyd@yahoo.co.uk> " Maintainer: Georg Dahn <gorgyd@yahoo.co.uk>
" Originally By: Marcin Dalecki <dalecki@cs.net.pl> " Originally By: Marcin Dalecki <dalecki@cs.net.pl>
" Johannes Zellner <johannes@zellner.org> " Johannes Zellner <johannes@zellner.org>
" Last Change: Sun, 5 Mar 2006 07:20:00 CEST " Last Change: Sat, 11 Mar 2006 22:40:00 CEST
" vim:set foldmethod=marker tabstop=8: " vim:set foldmethod=marker tabstop=8:
" Quit when menu translations have already been done. " Quit when menu translations have already been done.
@@ -101,13 +101,13 @@ menutrans &Keymap &Tastatur-Belegung
" }}} EDIT / EDITIEREN " }}} EDIT / EDITIEREN
" {{{ TOOLS / WERKZEUGE " {{{ TOOLS / WERKZEUGE
if has("syntax") if has("spell")
menutrans &Spelling &Rechtschreibung menutrans &Spelling &Rechtschreibpr<EFBFBD>fung
menutrans &Spell\ Check\ On &Rechtschreibung\ an menutrans &Spell\ Check\ On &Rechtschreibpr<EFBFBD>fung\ An
menutrans Spell\ Check\ &Off Rechtschreibung\ &aus menutrans Spell\ Check\ &Off Rechtschreibpr<EFBFBD>fung\ &Aus
menutrans To\ &Next\ error<Tab>]s Zum\ &n<EFBFBD>chsten\ Fehler<Tab>]s menutrans To\ &Next\ error<Tab>]s Zum\ &N<EFBFBD>chsten\ Fehler<Tab>]s
menutrans To\ &Previous\ error<Tab>[s Zum\ &letzten\ Fehler<Tab>[s menutrans To\ &Previous\ error<Tab>[s Zum\ &Letzten\ Fehler<Tab>[s
menutrans Suggest\ &Corrections<Tab>z? &Korrekturvorschl<EFBFBD>ge<Tab>z? menutrans Suggest\ &Corrections<Tab>z= &Korrekturvorschl<EFBFBD>ge<Tab>z=
menutrans &Repeat\ correction<Tab>:spellrepall &Wiederhole\ Korrektur<Tab>:spellrepall menutrans &Repeat\ correction<Tab>:spellrepall &Wiederhole\ Korrektur<Tab>:spellrepall
menutrans Set\ language\ to\ "en" Verwende\ W<EFBFBD>rterbuch\ "en" menutrans Set\ language\ to\ "en" Verwende\ W<EFBFBD>rterbuch\ "en"
menutrans Set\ language\ to\ "en_au" Verwende\ W<EFBFBD>rterbuch\ "en_au" menutrans Set\ language\ to\ "en_au" Verwende\ W<EFBFBD>rterbuch\ "en_au"
@@ -115,6 +115,7 @@ if has("syntax")
menutrans Set\ language\ to\ "en_gb" Verwende\ W<EFBFBD>rterbuch\ "en_gb" menutrans Set\ language\ to\ "en_gb" Verwende\ W<EFBFBD>rterbuch\ "en_gb"
menutrans Set\ language\ to\ "en_nz" Verwende\ W<EFBFBD>rterbuch\ "en_nz" menutrans Set\ language\ to\ "en_nz" Verwende\ W<EFBFBD>rterbuch\ "en_nz"
menutrans Set\ language\ to\ "en_us" Verwende\ W<EFBFBD>rterbuch\ "en_us" menutrans Set\ language\ to\ "en_us" Verwende\ W<EFBFBD>rterbuch\ "en_us"
menutrans Set\ language\ to\ "de" Verwende\ W<EFBFBD>rterbuch\ "de"
menutrans &Find\ More\ Languages &Suche\ nach\ W<EFBFBD>rterb<EFBFBD>chern menutrans &Find\ More\ Languages &Suche\ nach\ W<EFBFBD>rterb<EFBFBD>chern
endif endif
if has("folding") if has("folding")
@@ -164,6 +165,7 @@ menutrans &Older\ List<Tab>:cold &
menutrans N&ewer\ List<Tab>:cnew &Neuere\ Liste<Tab>:cnew menutrans N&ewer\ List<Tab>:cnew &Neuere\ Liste<Tab>:cnew
menutrans Error\ &Window Feh&ler-Fenster menutrans Error\ &Window Feh&ler-Fenster
menutrans Se&t\ Compiler &Compiler
menutrans Se&T\ Compiler &Compiler menutrans Se&T\ Compiler &Compiler
menutrans &Update<Tab>:cwin &Aktualisieren<Tab>:cwin menutrans &Update<Tab>:cwin &Aktualisieren<Tab>:cwin
menutrans &Open<Tab>:copen &<26>ffnen<Tab>:copen menutrans &Open<Tab>:copen &<26>ffnen<Tab>:copen
@@ -194,7 +196,6 @@ menutrans Delete L
menutrans &Alternate &Wechseln menutrans &Alternate &Wechseln
menutrans &Next &N<EFBFBD>chster menutrans &Next &N<EFBFBD>chster
menutrans &Previous &Vorheriger menutrans &Previous &Vorheriger
menutrans [No\ File] [Keine\ Datei]
" }}} BUFFERS / PUFFER " }}} BUFFERS / PUFFER
" {{{ WINDOW / ANSICHT " {{{ WINDOW / ANSICHT
@@ -243,7 +244,7 @@ menutrans Cu&t Aus&schneiden
menutrans &Copy &Kopieren menutrans &Copy &Kopieren
menutrans &Paste &Einf<EFBFBD>gen menutrans &Paste &Einf<EFBFBD>gen
menutrans &Delete &L<EFBFBD>schen menutrans &Delete &L<EFBFBD>schen
menutrans Select\ Blockwise Auswahl\ Blockartig menutrans Select\ Blockwise Auswahl\ blockartig
menutrans Select\ &Word Auswahl\ des\ &Wortes menutrans Select\ &Word Auswahl\ des\ &Wortes
menutrans Select\ &Sentence Auswahl\ des\ Sa&tzes menutrans Select\ &Sentence Auswahl\ des\ Sa&tzes
menutrans Select\ Pa&ragraph Auswahl\ des\ Absatzes menutrans Select\ Pa&ragraph Auswahl\ des\ Absatzes

View File

@@ -1733,7 +1733,7 @@ cmdline_changed:
validate_cursor(); validate_cursor();
save_cmdline(&save_ccline); save_cmdline(&save_ccline);
update_screen(NOT_VALID); update_screen(SOME_VALID);
restore_cmdline(&save_ccline); restore_cmdline(&save_ccline);
msg_starthere(); msg_starthere();
@@ -1781,7 +1781,7 @@ returncmd:
curwin->w_botline = old_botline; curwin->w_botline = old_botline;
highlight_match = FALSE; highlight_match = FALSE;
validate_cursor(); /* needed for TAB */ validate_cursor(); /* needed for TAB */
redraw_later(NOT_VALID); redraw_later(SOME_VALID);
} }
#endif #endif
@@ -5849,7 +5849,7 @@ ex_window()
curwin->w_cursor.col = ccline.cmdpos; curwin->w_cursor.col = ccline.cmdpos;
changed_line_abv_curs(); changed_line_abv_curs();
invalidate_botline(); invalidate_botline();
redraw_later(NOT_VALID); redraw_later(SOME_VALID);
/* Save the command line info, can be used recursively. */ /* Save the command line info, can be used recursively. */
save_ccline = ccline; save_ccline = ccline;

View File

@@ -454,7 +454,7 @@ pum_set_selected(n)
{ {
/* Return cursor to where we were */ /* Return cursor to where we were */
validate_cursor(); validate_cursor();
redraw_later(NOT_VALID); redraw_later(SOME_VALID);
/* When the preview window was resized we need to /* When the preview window was resized we need to
* update the view on the buffer. Only go back to * update the view on the buffer. Only go back to
@@ -498,7 +498,7 @@ pum_set_selected(n)
pum_undisplay() pum_undisplay()
{ {
pum_array = NULL; pum_array = NULL;
redraw_all_later(NOT_VALID); redraw_all_later(SOME_VALID);
} }
/* /*

View File

@@ -70,6 +70,11 @@
* must call redraw_curbuf_later(NOT_VALID) to have all the windows for the * must call redraw_curbuf_later(NOT_VALID) to have all the windows for the
* buffer redisplayed by update_screen() later. * buffer redisplayed by update_screen() later.
* *
* Commands that change highlighting and possibly cause a scroll too must call
* redraw_later(SOME_VALID) to update the whole window but still use scrolling
* to avoid redrawing everything. But the length of displayed lines must not
* change, use NOT_VALID then.
*
* Commands that move the window position must call redraw_later(NOT_VALID). * Commands that move the window position must call redraw_later(NOT_VALID).
* TODO: should minimize redrawing by scrolling when possible. * TODO: should minimize redrawing by scrolling when possible.
* *
@@ -736,6 +741,7 @@ updateWindow(wp)
* How the window is redrawn depends on wp->w_redr_type. Each type also * How the window is redrawn depends on wp->w_redr_type. Each type also
* implies the one below it. * implies the one below it.
* NOT_VALID redraw the whole window * NOT_VALID redraw the whole window
* SOME_VALID redraw the whole window but do scroll when possible
* REDRAW_TOP redraw the top w_upd_rows window lines, otherwise like VALID * REDRAW_TOP redraw the top w_upd_rows window lines, otherwise like VALID
* INVERTED redraw the changed part of the Visual area * INVERTED redraw the changed part of the Visual area
* INVERTED_ALL redraw the whole Visual area * INVERTED_ALL redraw the whole Visual area
@@ -1022,7 +1028,8 @@ win_update(wp)
* 3: wp->w_topline is wp->w_lines[0].wl_lnum: find first entry in * 3: wp->w_topline is wp->w_lines[0].wl_lnum: find first entry in
* w_lines[] that needs updating. * w_lines[] that needs updating.
*/ */
if ((type == VALID || type == INVERTED || type == INVERTED_ALL) if ((type == VALID || type == SOME_VALID
|| type == INVERTED || type == INVERTED_ALL)
#ifdef FEAT_DIFF #ifdef FEAT_DIFF
&& !wp->w_botfill && !wp->w_old_botfill && !wp->w_botfill && !wp->w_old_botfill
#endif #endif
@@ -1223,6 +1230,14 @@ win_update(wp)
mid_end = wp->w_height; mid_end = wp->w_height;
} }
if (type == SOME_VALID)
{
/* SOME_VALID: redraw all lines. */
mid_start = 0;
mid_end = wp->w_height;
type = NOT_VALID;
}
#ifdef FEAT_VISUAL #ifdef FEAT_VISUAL
/* check if we are updating or removing the inverted part */ /* check if we are updating or removing the inverted part */
if ((VIsual_active && buf == curwin->w_buffer) if ((VIsual_active && buf == curwin->w_buffer)
@@ -2386,6 +2401,12 @@ fold_line(wp, fold_count, foldinfo, lnum, row)
} }
#endif #endif
#ifdef FEAT_SYN_HL
/* Show 'cursorcolumn' in the fold line. */
if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp))
ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr(
ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC));
#endif
SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp),
(int)W_WIDTH(wp), FALSE); (int)W_WIDTH(wp), FALSE);
@@ -2543,9 +2564,12 @@ win_line(wp, lnum, startrow, endrow, nochange)
int area_attr = 0; /* attributes desired by highlighting */ int area_attr = 0; /* attributes desired by highlighting */
int search_attr = 0; /* attributes desired by 'hlsearch' */ int search_attr = 0; /* attributes desired by 'hlsearch' */
#ifdef FEAT_SYN_HL #ifdef FEAT_SYN_HL
int vcol_save_attr = 0; /* saved attr for 'cursorcolumn' */
int syntax_attr = 0; /* attributes desired by syntax */ int syntax_attr = 0; /* attributes desired by syntax */
int has_syntax = FALSE; /* this buffer has syntax highl. */ int has_syntax = FALSE; /* this buffer has syntax highl. */
int save_did_emsg; int save_did_emsg;
#endif
#ifdef FEAT_SPELL
int has_spell = FALSE; /* this buffer has spell checking */ int has_spell = FALSE; /* this buffer has spell checking */
# define SPWORDLEN 150 # define SPWORDLEN 150
char_u nextline[SPWORDLEN * 2];/* text with start of the next line */ char_u nextline[SPWORDLEN * 2];/* text with start of the next line */
@@ -2658,7 +2682,9 @@ win_line(wp, lnum, startrow, endrow, nochange)
extra_check = TRUE; extra_check = TRUE;
} }
} }
#endif
#ifdef FEAT_SPELL
if (wp->w_p_spell if (wp->w_p_spell
&& *wp->w_buffer->b_p_spl != NUL && *wp->w_buffer->b_p_spl != NUL
&& wp->w_buffer->b_langp.ga_len > 0 && wp->w_buffer->b_langp.ga_len > 0
@@ -2857,7 +2883,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
line = ml_get_buf(wp->w_buffer, lnum, FALSE); line = ml_get_buf(wp->w_buffer, lnum, FALSE);
ptr = line; ptr = line;
#ifdef FEAT_SYN_HL #ifdef FEAT_SPELL
if (has_spell) if (has_spell)
{ {
/* For checking first word with a capital skip white space. */ /* For checking first word with a capital skip white space. */
@@ -2964,7 +2990,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
if (wp->w_p_wrap) if (wp->w_p_wrap)
need_showbreak = TRUE; need_showbreak = TRUE;
#endif #endif
#ifdef FEAT_SYN_HL #ifdef FEAT_SPELL
/* When spell checking a word we need to figure out the start of the /* When spell checking a word we need to figure out the start of the
* word and if it's badly spelled or not. */ * word and if it's badly spelled or not. */
if (has_spell) if (has_spell)
@@ -2994,9 +3020,11 @@ win_line(wp, lnum, startrow, endrow, nochange)
} }
wp->w_cursor = pos; wp->w_cursor = pos;
# ifdef FEAT_SYN_HL
/* Need to restart syntax highlighting for this line. */ /* Need to restart syntax highlighting for this line. */
if (has_syntax) if (has_syntax)
syntax_start(wp, lnum); syntax_start(wp, lnum);
# endif
} }
#endif #endif
} }
@@ -3077,6 +3105,15 @@ win_line(wp, lnum, startrow, endrow, nochange)
} }
#endif #endif
#ifdef FEAT_SYN_HL
/* Cursor line highlighting for 'cursorline'. */
if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
{
line_attr = hl_attr(HLF_CUL);
area_highlighting = TRUE;
}
#endif
off = (unsigned)(current_ScreenLine - ScreenLines); off = (unsigned)(current_ScreenLine - ScreenLines);
col = 0; col = 0;
#ifdef FEAT_RIGHTLEFT #ifdef FEAT_RIGHTLEFT
@@ -3221,6 +3258,12 @@ win_line(wp, lnum, startrow, endrow, nochange)
c_extra = ' '; c_extra = ' ';
n_extra = number_width(wp) + 1; n_extra = number_width(wp) + 1;
char_attr = hl_attr(HLF_N); char_attr = hl_attr(HLF_N);
#ifdef FEAT_SYN_HL
/* When 'cursorline' is set highlight the line number of
* the current line differently. */
if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
char_attr = hl_combine_attr(hl_attr(HLF_CUL), char_attr);
#endif
} }
} }
@@ -3723,9 +3766,11 @@ win_line(wp, lnum, startrow, endrow, nochange)
if (extra_check) if (extra_check)
{ {
#ifdef FEAT_SYN_HL #ifdef FEAT_SPELL
int can_spell = TRUE; int can_spell = TRUE;
#endif
#ifdef FEAT_SYN_HL
/* Get syntax attribute, unless still at the start of the line /* Get syntax attribute, unless still at the start of the line
* (double-wide char that doesn't fit). */ * (double-wide char that doesn't fit). */
v = (long)(ptr - line); v = (long)(ptr - line);
@@ -3737,7 +3782,10 @@ win_line(wp, lnum, startrow, endrow, nochange)
did_emsg = FALSE; did_emsg = FALSE;
syntax_attr = get_syntax_attr((colnr_T)v - 1, syntax_attr = get_syntax_attr((colnr_T)v - 1,
has_spell ? &can_spell : NULL); # ifdef FEAT_SPELL
has_spell ? &can_spell :
# endif
NULL);
if (did_emsg) if (did_emsg)
{ {
@@ -3757,7 +3805,9 @@ win_line(wp, lnum, startrow, endrow, nochange)
else else
char_attr = hl_combine_attr(syntax_attr, char_attr); char_attr = hl_combine_attr(syntax_attr, char_attr);
} }
#endif
#ifdef FEAT_SPELL
/* Check spelling (unless at the end of the line). /* Check spelling (unless at the end of the line).
* Only do this when there is no syntax highlighting, the * Only do this when there is no syntax highlighting, the
* @Spell cluster is not used or the current syntax item * @Spell cluster is not used or the current syntax item
@@ -3765,9 +3815,15 @@ win_line(wp, lnum, startrow, endrow, nochange)
if (has_spell && v >= word_end && v > cur_checked_col) if (has_spell && v >= word_end && v > cur_checked_col)
{ {
spell_attr = 0; spell_attr = 0;
# ifdef FEAT_SYN_HL
if (!attr_pri) if (!attr_pri)
char_attr = syntax_attr; char_attr = syntax_attr;
if (c != 0 && (!has_syntax || can_spell)) # endif
if (c != 0 && (
# ifdef FEAT_SYN_HL
!has_syntax ||
# endif
can_spell))
{ {
char_u *prev_ptr, *p; char_u *prev_ptr, *p;
int len; int len;
@@ -4212,8 +4268,39 @@ win_line(wp, lnum, startrow, endrow, nochange)
else else
#endif #endif
++col; ++col;
++vcol;
} }
#ifdef FEAT_SYN_HL
/* Highlight 'cursorcolumn' past end of the line. */
if (wp->w_p_cuc
&& (int)wp->w_virtcol >= vcol
&& (int)wp->w_virtcol < W_WIDTH(wp)
&& lnum != wp->w_cursor.lnum
# ifdef FEAT_RIGHTLEFT
&& !wp->w_p_rl
# endif
)
{
while (col < W_WIDTH(wp))
{
ScreenLines[off] = ' ';
#ifdef FEAT_MBYTE
if (enc_utf8)
ScreenLinesUC[off] = 0;
#endif
++col;
if (vcol == wp->w_virtcol)
{
ScreenAttrs[off] = hl_attr(HLF_CUC);
break;
}
ScreenAttrs[off++] = 0;
++vcol;
}
}
#endif
SCREEN_LINE(screen_row, W_WINCOL(wp), col, (int)W_WIDTH(wp), SCREEN_LINE(screen_row, W_WINCOL(wp), col, (int)W_WIDTH(wp),
wp->w_p_rl); wp->w_p_rl);
row++; row++;
@@ -4264,6 +4351,20 @@ win_line(wp, lnum, startrow, endrow, nochange)
#endif #endif
} }
#ifdef FEAT_SYN_HL
/* Highlight the cursor column if 'cursorcolumn' is set. But don't
* highlight the cursor position itself. */
if (wp->w_p_cuc && vcol == wp->w_virtcol
&& lnum != wp->w_cursor.lnum
&& draw_state == WL_LINE)
{
vcol_save_attr = char_attr;
char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC));
}
else
vcol_save_attr = -1;
#endif
/* /*
* Store character to be displayed. * Store character to be displayed.
* Skip characters that are left of the screen for 'nowrap'. * Skip characters that are left of the screen for 'nowrap'.
@@ -4361,6 +4462,11 @@ win_line(wp, lnum, startrow, endrow, nochange)
) )
++vcol; ++vcol;
#ifdef FEAT_SYN_HL
if (vcol_save_attr >= 0)
char_attr = vcol_save_attr;
#endif
/* restore attributes after "predeces" in 'listchars' */ /* restore attributes after "predeces" in 'listchars' */
if (draw_state > WL_NR && n_attr3 > 0 && --n_attr3 == 0) if (draw_state > WL_NR && n_attr3 > 0 && --n_attr3 == 0)
char_attr = saved_attr3; char_attr = saved_attr3;
@@ -4514,7 +4620,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
} /* for every character in the line */ } /* for every character in the line */
#ifdef FEAT_SYN_HL #ifdef FEAT_SPELL
/* After an empty line check first word for capital. */ /* After an empty line check first word for capital. */
if (*skipwhite(line) == NUL) if (*skipwhite(line) == NUL)
{ {
@@ -4687,7 +4793,9 @@ screen_line(row, coloff, endcol, clear_width
if (redraw_next && gui.in_use) if (redraw_next && gui.in_use)
{ {
hl = ScreenAttrs[off_to + CHAR_CELLS]; hl = ScreenAttrs[off_to + CHAR_CELLS];
if (hl > HL_ALL || (hl & HL_BOLD)) if (hl > HL_ALL)
hl = syn_attr2attr(hl);
if (hl & HL_BOLD)
redraw_this = TRUE; redraw_this = TRUE;
} }
#endif #endif
@@ -4816,7 +4924,9 @@ screen_line(row, coloff, endcol, clear_width
) )
{ {
hl = ScreenAttrs[off_to]; hl = ScreenAttrs[off_to];
if (hl > HL_ALL || (hl & HL_BOLD)) if (hl > HL_ALL)
hl = syn_attr2attr(hl);
if (hl & HL_BOLD)
redraw_next = TRUE; redraw_next = TRUE;
} }
#endif #endif

View File

@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA" #define VIM_VERSION_MEDIUM "7.0aa ALPHA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 11)" #define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 12)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 11, compiled " #define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 12, compiled "