0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.0086

This commit is contained in:
Bram Moolenaar
2005-06-16 21:59:56 +00:00
parent 6bab4d1fd7
commit 520470a9d6
11 changed files with 242 additions and 195 deletions

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.0aa. Last change: 2005 Apr 01 *repeat.txt* For Vim version 7.0aa. Last change: 2005 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -290,7 +290,7 @@ first line has something like ":map <F1> :help^M", where "^M" is a <CR>. If
the first line ends in a <CR>, but following ones don't, you will get an error the first line ends in a <CR>, but following ones don't, you will get an error
message, because the <CR> from the first lines will be lost. message, because the <CR> from the first lines will be lost.
Macintosh: Files that are read with ":source" normally have <CR> <EOL>s. Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s.
These always work. If you are using a file with <NL> <EOL>s (for example, a These always work. If you are using a file with <NL> <EOL>s (for example, a
file made on Unix), this will be recognized if 'fileformats' is not empty and file made on Unix), this will be recognized if 'fileformats' is not empty and
the first line does not end in a <CR>. Be careful not to use a file with <NL> the first line does not end in a <CR>. Be careful not to use a file with <NL>

View File

@@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 14 *spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -25,9 +25,9 @@ This command switches on spell checking: >
This switches on the 'spell' option and specifies to check for US English. This switches on the 'spell' option and specifies to check for US English.
The words that are not recognized are highlighted with one of these: The words that are not recognized are highlighted with one of these:
SpellBad word not recognized SpellBad word not recognized |hl-SpellBad|
SpellRare rare word SpellRare rare word |hl-SpellRare|
SpellLocal wrong spelling for selected region SpellLocal wrong spelling for selected region |hl-SpellLocal|
Vim only checks words for spelling, there is no grammar check. Vim only checks words for spelling, there is no grammar check.
@@ -63,9 +63,10 @@ zw Add word under the cursor as a wrong (bad) word to
'spellfile'. In Visual mode the selected characters 'spellfile'. In Visual mode the selected characters
are added as a word (including white space!). are added as a word (including white space!).
*:spellg* *:spellgood* *:spe* *:spellgood*
:spellg[ood] {word} Add [word} as a good word to 'spellfile'. :spe[llgood] {word} Add [word} as a good word to 'spellfile'.
*:spellw* *:spellwrong*
:spellw[rong] {word} Add [word} as a wrong (bad) word to 'spellfile'. :spellw[rong] {word} Add [word} as a wrong (bad) word to 'spellfile'.
After adding a word to 'spellfile' its associated ".spl" file will After adding a word to 'spellfile' its associated ".spl" file will
@@ -117,7 +118,7 @@ comes in (at least) these variants:
en_us USA en_us USA
Words that are not used in one region but are used in another region are Words that are not used in one region but are used in another region are
highlighted with |SpellLocal|. highlighted with SpellLocal |hl-SpellLocal|.
Always use lowercase letters for the language and region names. Always use lowercase letters for the language and region names.
@@ -223,7 +224,7 @@ find them here:
http://lingucomponent.openoffice.org/spell_dic.html http://lingucomponent.openoffice.org/spell_dic.html
You can also use a plain word list. You can also use a plain word list.
:mksp[ell] [-ascii] {outname} {inname} ... *:mksp* *:mkspell* :mksp[ell][!] [-ascii] {outname} {inname} ... *:mksp* *:mkspell*
Generate a Vim spell file word lists. Example: > Generate a Vim spell file word lists. Example: >
:mkspell nl nl_NL.words :mkspell nl nl_NL.words
< <
@@ -233,6 +234,9 @@ You can also use a plain word list.
{outname}.{encoding}.spl. {encoding} is the value of {outname}.{encoding}.spl. {encoding} is the value of
the 'encoding' option. the 'encoding' option.
When the output file already exists [!] must be added
to overwrite it.
When the [-ascii] argument is present, words with When the [-ascii] argument is present, words with
non-ascii characters are skipped. The resulting file non-ascii characters are skipped. The resulting file
ends in "ascii.spl". ends in "ascii.spl".

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jun 14 *todo.txt* For Vim version 7.0aa. Last change: 2005 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
synID() no longer works.
Range(0) should return an empty list (Servatius Brandt). Range(0) should return an empty list (Servatius Brandt).
:let @= 'asdf' gives confusing error message. Make @= writable? :let @= 'asdf' gives confusing error message. Make @= writable?
@@ -77,6 +79,9 @@ changed.
Include new PHP indent script from John Wellesz? Include new PHP indent script from John Wellesz?
http://www.vim.org/scripts/download_script.php?src_id=4330 http://www.vim.org/scripts/download_script.php?src_id=4330
In Vim indenting use synID() to avoid recognizing "|en" in a string as
"|endif".
autoload: autoload:
- Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of - Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of
script names and a help file and produces a script that can be sourced to script names and a help file and produces a script that can be sourced to
@@ -88,6 +93,9 @@ autoload:
helpfile doc/myscript.txt helpfile doc/myscript.txt
For the "helpfile" item ":helptags" is run. For the "helpfile" item ":helptags" is run.
For List comparing, consider [4] and ['4'] different? (Servatius Brandt)
Also allows strict comparing for ordinary variables.
Patch to alternate fold highlighting. (Anthony Iano-Fletcher, 2005 May 12) Patch to alternate fold highlighting. (Anthony Iano-Fletcher, 2005 May 12)
More levels? More levels?
@@ -105,9 +113,18 @@ PLANNED FOR VERSION 7.0:
- Code for making suggestions: - Code for making suggestions:
- Aspell has the "special" character, useful? - Aspell has the "special" character, useful?
- The score is a bit wrong for substituting multi-byte characters. - The score is a bit wrong for substituting multi-byte characters.
At the head byte remember how may bytes are still to follow, do
the scoring at the tail byte. But don't even try when the score
plus the minimal penalty (similar char) goes over maximum.
- similar_chars() is too slow. - similar_chars() is too slow.
- Swapping works with bytes instead of characters. use a lookuptable for single-byte
- The sound-folding doesn't work for multi-byte characters. use a hashtable for multi-byte
support letter appearing in several lists?
- When putting map string in .spl file check for duplicate chars.
- GUI: Selecting text doesn't work at the prompt.
- Should "z?" replacement be redo-able with "."?
- The sound-folding doesn't work for multi-byte characters. It's
very slow too. Prepare the table (remove alternatives)?
- Also put list of word characters in word list file. Otherwise the - Also put list of word characters in word list file. Otherwise the
one for Italian may differ from the one used for English. one for Italian may differ from the one used for English.
- Make "en-rare" spell file. - Make "en-rare" spell file.
@@ -182,6 +199,7 @@ PLANNED FOR VERSION 7.0:
- Put the list of choices right under the place where they would be - Put the list of choices right under the place where they would be
inserted. inserted.
- Pre-expand abbreviations, show which abbrevs would match? - Pre-expand abbreviations, show which abbrevs would match?
- Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
- UNDO TREE: keep all states of the text, don't delete undo info. - UNDO TREE: keep all states of the text, don't delete undo info.
When making a change, instead of clearing any future undo (thus redo) When making a change, instead of clearing any future undo (thus redo)
info, make a new branch. info, make a new branch.
@@ -288,7 +306,7 @@ Don't count it in only_one_window(). (Alexei Alexandrov)
Win32: Patch for Korean IME. (Yusung, 2005 March 21) Win32: Patch for Korean IME. (Yusung, 2005 March 21)
When "= evaluation results in a list, use it as a sequence of lines. When "= evaluation results in a List, use it as a sequence of lines.
Support ":set syntax=cpp.doxygen"? Suggested patch by Michael Geddes (9 Aug Support ":set syntax=cpp.doxygen"? Suggested patch by Michael Geddes (9 Aug
2004). Should also work for 'filetype'. 2004). Should also work for 'filetype'.

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 13 *version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -657,6 +657,10 @@ Grahame Bowland and Evan Webb.
Added ":scriptnames" to bugreport.vim, so that we can see what plugins were Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
used. used.
Win32: If the user changes the setting for the number of lines a scroll wheel
click scrolls it is now used immediately. Previously Vim would need to be
restarted.
============================================================================== ==============================================================================
COMPILE TIME CHANGES *compile-changes-7* COMPILE TIME CHANGES *compile-changes-7*

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2005 May 20 " Last Change: 2005 Jun 16
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@@ -543,6 +543,9 @@ au BufNewFile,BufRead *.exp setf expect
" Exports " Exports
au BufNewFile,BufRead exports setf exports au BufNewFile,BufRead exports setf exports
" Factor
au BufNewFile,BufRead *.factor setf factor
" Fetchmail RC file " Fetchmail RC file
au BufNewFile,BufRead .fetchmailrc setf fetchmail au BufNewFile,BufRead .fetchmailrc setf fetchmail

View File

@@ -2,33 +2,29 @@
" Language: Pascal " Language: Pascal
" Maintainer: Neil Carter <n.carter@swansea.ac.uk> " Maintainer: Neil Carter <n.carter@swansea.ac.uk>
" Created: 2004 Jul 13 " Created: 2004 Jul 13
" Last Change: 2005 Jun 07 " Last Change: 2005 Jun 15
" TODO: Reduce indentation on line after a statement that flowed across
" two lines (e.g. parameter list closed on second line). Also, increase
" indent of a becomes-statement that flows onto second line.
" Only load this indent file when no other was loaded.
if exists("b:did_indent") if exists("b:did_indent")
finish finish
endif endif
let b:did_indent = 1 let b:did_indent = 1
setlocal indentexpr=GetPascalIndent(v:lnum) setlocal indentexpr=GetPascalIndent(v:lnum)
" Appending an & to an option sets it to its default value.
setlocal indentkeys& setlocal indentkeys&
setlocal indentkeys+=~end;,=~const,=~type,=~var,=~begin,=~repeat,=~until,=~for setlocal indentkeys+==end;,==const,==type,==var,==begin,==repeat,==until,==for
setlocal indentkeys+=~program,=~function,=~procedure,=~object,=~private setlocal indentkeys+==program,==function,==procedure,==object,==private
setlocal indentkeys+=~record,=~if,=~else,=~case setlocal indentkeys+==record,==if,==else,==case
if exists("*GetPascalIndent") if exists("*GetPascalIndent")
finish finish
endif endif
function s:GetPrevLineNum( line_num ) function! s:GetPrevNonCommentLineNum( line_num )
" Skip over comments and conditional directives " Skip lines starting with a comment
let SKIP_LINES = '^\s*\((\*\)\|\(\*\ \)\|\(\*)\)\|\({\$\)' let SKIP_LINES = '^\s*\(\((\*\)\|\(\*\ \)\|\(\*)\)\|{\|}\)'
let nline = a:line_num let nline = a:line_num
while nline > 0 while nline > 0
@@ -38,136 +34,140 @@ function s:GetPrevLineNum( line_num )
endif endif
endwhile endwhile
" call input( "nline = ".nline )
return nline return nline
endfunction endfunction
function! GetPascalIndent( line_num ) function! GetPascalIndent( line_num )
" Line 0 always goes at column 0
if a:line_num == 0 if a:line_num == 0
return 0 return 0
endif endif
let this_codeline = getline( a:line_num )
" If in the middle of a three-part comment " If in the middle of a three-part comment
if getline( a:line_num ) =~ '^\s*\*\ ' if this_codeline =~ '^\s*\*'
return indent( a:line_num ) return indent( a:line_num )
endif endif
" We have to subtract one to start on the line before the current let prev_codeline_num = s:GetPrevNonCommentLineNum( a:line_num )
" one. Otherwise, prevnonblank() returns the current line! let prev_codeline = getline( prev_codeline_num )
let prev_line_num = s:GetPrevLineNum( a:line_num ) let indnt = indent( prev_codeline_num )
let prev_line = getline( prev_line_num )
let indnt = indent( prev_line_num )
let this_line = getline( a:line_num ) " Compiler directives should always go in column zero.
if this_codeline =~ '^\s*{\(\$IFDEF\|\$ELSE\|\$ENDIF\)'
" At the start of a block, we have to indent the newly-created line return 0
" based on the previous line.
" =~ means matches a regular expression
" a question mark after =~ means ignore case (# means match case)
" const, type, var should always appear at the start of a line, but
" begin can appear anywhere in the line.
" if one of the following keywords appear in the previous line with
" nothing before it but optional whitespace, and nothing after it.
" Has to be end of line at end to show this is not a routine
" parameter list. Otherwise, you'd end up with cascading vars.
" These words appear alone on a line (apart from whitespace).
if prev_line =~ '^\s*\(const\|var\|begin\|repeat\|private\)$'
" Place an & before an option to obtain its value.
let indnt = indnt + &shiftwidth
endif endif
" Words preceded by optional whitespace and followed by anything. " These items have nothing before or after (not even a comment), and
if prev_line =~ '^\s*\(for\|if\|else\|case\)' " go on column 0. Make sure that the ^\s* is followed by \( to make
" Place an & before an option to obtain its value. " ORs work properly, and not include the start of line (this must
" always appear).
" The bracketed expression with the underline is a routine
" separator. This is one case where we do indent comment lines.
if this_codeline =~ '^\s*\((\*\ _\+\ \*)\|\<\(const\|var\)\>\)$'
return 0
endif
" These items may have text after them, and go on column 0 (in most
" cases). The problem is that "function" and "procedure" keywords
" should be indented if within a class declaration.
if this_codeline =~ '^\s*\<\(program\|type\|uses\|procedure\|function\)\>'
return 0
endif
" BEGIN
" If the begin does not come after "if", "for", or "else", then it
" goes in column 0
if this_codeline =~ '^\s*begin\>' && prev_codeline !~ '^\s*\<\(if\|for\|else\)\>'
return 0
endif
" These keywords are indented once only.
if this_codeline =~ '^\s*\<\(private\)\>'
return &shiftwidth
endif
" If the PREVIOUS LINE contained these items, the current line is
" always indented once.
if prev_codeline =~ '^\s*\<\(type\|uses\)\>'
return &shiftwidth
endif
" These keywords are indented once only. Possibly surrounded by
" other chars.
if this_codeline =~ '^.\+\<\(object\|record\)\>'
return &shiftwidth
endif
" If the previous line was indenting...
if prev_codeline =~ '^\s*\<\(for\|if\|case\|else\|end\ else\)\>'
" then indent.
let indnt = indnt + &shiftwidth let indnt = indnt + &shiftwidth
" if this is a multistatement block then we need to align the " BUT... if this is the start of a multistatement block then we
" begin with the previous line. " need to align the begin with the previous line.
if this_line =~ '^\s*begin' if this_codeline =~ '^\s*begin\>'
return indnt - &shiftwidth
endif
" We also need to keep the indentation level constant if the
" whole if-then statement was on one line.
if prev_codeline =~ '\<then\>.\+'
let indnt = indnt - &shiftwidth let indnt = indnt - &shiftwidth
endif endif
endif endif
" These words may have text before them on the line (hence the .*).
if prev_line =~ '^.*\s*\<\(object\|record\)\>$' " PREVIOUS-LINE BEGIN
let indnt = indnt + &shiftwidth " If the previous line was an indenting keyword then indent once...
if prev_codeline =~ '^\s*\<\(const\|var\|begin\|repeat\|private\)\>'
" But only if this is another var in a list.
if this_codeline !~ '^\s*var\>'
return indnt + &shiftwidth
endif endif
" If we have opened a bracket and the contents spills over one line, endif
" then indent one level beyond the bracket's first line. RE = an
" opening bracket followed by any amount of anything other than a " PREVIOUS-LINE BEGIN
" closing bracket and then the end-of-line. If we didn't include the " Indent code after a case statement begin
" end of line, this RE would match even closed brackets, since it if prev_codeline =~ '\:\ begin\>'
" would match everything up to the closing bracket. return indnt + &shiftwidth
" This test isn't clever enough to handle brackets inside strings or endif
" comments.
if prev_line =~ '([^*][^)]*$' " These words may have text before them on the line (hence the .*)
let indnt = indnt + &shiftwidth " but are followed by nothing. Always indent once only.
if prev_codeline =~ '^\(.*\|\s*\)\<\(object\|record\)\>$'
return indnt + &shiftwidth
endif endif
" If we just closed a bracket that started on a previous line, then " If we just closed a bracket that started on a previous line, then
" unindent. " unindent. But don't return yet -- we need to check for further
if prev_line =~ '^[^(]*[^*])' " unindentation (for end/until/else)
if prev_codeline =~ '^[^(]*[^*])'
let indnt = indnt - &shiftwidth let indnt = indnt - &shiftwidth
endif endif
" At the end of a block, we have to unindent both the current line " At the end of a block, we have to unindent both the current line
" (the 'end;' for instance) and the newly-created line. " (the "end" for instance) and the newly-created line.
if this_line =~ '^\s*\(end;\|until\|else\)' if this_codeline =~ '^\s*\<\(end\|until\|else\)\>'
let indnt = indnt - &shiftwidth return indnt - &shiftwidth
endif endif
" Keywords that always appear at the start of a line. " If we have opened a bracket and it continues over one line,
" Problem is that function and procedure keywords should be indented " then indent once.
" if within a class declaration. "
if this_line =~ '^\s*\<type\|uses\|$IFDEF\|$ENDIF\|procedure\|function\>' " RE = an opening bracket followed by any amount of anything other
let indnt = 0 " than a closing bracket and then the end-of-line.
endif "
if prev_line =~ '^\s*\<type\|uses\>' " If we didn't include the end of line, this RE would match even
let indnt = &shiftwidth " closed brackets, since it would match everything up to the closing
endif " bracket.
"
" Put conditional compile directives on first column. " This test isn't clever enough to handle brackets inside strings or
if this_line =~ '^\s*{\$' " comments.
let indnt = 0 if prev_codeline =~ '([^*]\=[^)]*$'
return indnt + &shiftwidth
endif endif
return indnt return indnt
endfunction endfunction
" TODO: end; should align with the previous (begin/record/object/else).
" "else begin" is the only case where begin does not appear at the start
" of the line.
" TODO: Don't align with {$IFDEF}
"Example from vb.vim
" regular expression match, case insensitive
"if previous_line =~?
" start of line, zero or more whitespace
"'^\s*
" start of word
"\<
"
"\(
" begin\|
" \%(
" \%(
" private\|public\|friend
" \)
" \s\+
" \)
" zero or more of the previous atom
" \=
" \%(
" function\|sub\|property
" \)
" \|select\|case\|default\|if
"\>
" .\{-}\<then\>\s*$\|else\|elseif\|do\|for\|while\|enum\|with
"\)
" end of word
"\>'
" let ind = ind + &sw
"endif

View File

@@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: Vim script " Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2005 Feb 25 " Last Change: 2005 Jun 16
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
if exists("b:did_indent") if exists("b:did_indent")
@@ -51,8 +51,8 @@ function GetVimIndent()
endif endif
" If the previous line contains an "end" after a pipe, but not in an ":au" " If the previous line contains an "end" after a pipe, but not in an ":au"
" command. " command. And not when there is a backslash before the pipe.
if getline(lnum) =~ '|\s*\(ene\@!\)' && getline(lnum) !~ '^\s*au\%[tocmd]' if getline(lnum) =~ '[^\\]|\s*\(ene\@!\)' && getline(lnum) !~ '^\s*au\%[tocmd]'
let ind = ind - &sw let ind = ind - &sw
endif endif

View File

@@ -498,6 +498,18 @@ _OnMouseWheel(
_OnScroll(hwnd, hwndCtl, zDelta >= 0 ? SB_PAGEUP : SB_PAGEDOWN, 0); _OnScroll(hwnd, hwndCtl, zDelta >= 0 ? SB_PAGEUP : SB_PAGEDOWN, 0);
} }
/*
* Invoked when a setting was changed.
*/
static LRESULT CALLBACK
_OnSettingChange(UINT n)
{
if (n == SPI_SETWHEELSCROLLLINES)
SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
&mouse_scroll_lines, 0);
return 0;
}
#if 0 /* disabled, a gap appears below and beside the window, and the window #if 0 /* disabled, a gap appears below and beside the window, and the window
can be moved (in a strange way) */ can be moved (in a strange way) */
/* /*
@@ -686,6 +698,10 @@ _WndProc(
_OnMouseWheel(hwnd, HIWORD(wParam)); _OnMouseWheel(hwnd, HIWORD(wParam));
break; break;
/* Notification for change in SystemParametersInfo() */
case WM_SETTINGCHANGE:
return _OnSettingChange((UINT)wParam);
#ifdef FEAT_TOOLBAR #ifdef FEAT_TOOLBAR
case WM_NOTIFY: case WM_NOTIFY:
switch (((LPNMHDR) lParam)->code) switch (((LPNMHDR) lParam)->code)

View File

@@ -94,4 +94,6 @@ void sort_strings __ARGS((char_u **files, int count));
int pathcmp __ARGS((const char *p, const char *q, int maxlen)); int pathcmp __ARGS((const char *p, const char *q, int maxlen));
char_u *parse_list_options __ARGS((char_u *option_str, option_table_T *table, int table_size)); char_u *parse_list_options __ARGS((char_u *option_str, option_table_T *table, int table_size));
int filewritable __ARGS((char_u *fname)); int filewritable __ARGS((char_u *fname));
int emsg3 __ARGS((char_u *s, char_u *a1, char_u *a2));
int emsgn __ARGS((char_u *s, long n));
/* vim: set ft=c : */ /* vim: set ft=c : */

View File

@@ -2224,7 +2224,7 @@ check_linecomment(line)
int instr = FALSE; /* inside of string */ int instr = FALSE; /* inside of string */
p = line; /* scan from start */ p = line; /* scan from start */
while ((p = vim_strpbrk(p, "\";")) != NULL) while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
{ {
if (*p == '"') if (*p == '"')
{ {

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 (2005 Jun 14)" #define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 16)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 14, compiled " #define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 16, compiled "