updated for version 7.0019

This commit is contained in:
Bram Moolenaar
2004-10-12 20:02:24 +00:00
parent 5c4e21cf4d
commit 47136d70fa
12 changed files with 241 additions and 48 deletions

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.0aa. Last change: 2004 Sep 16
*change.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -13,6 +13,10 @@ commands with the "." command.
2. Delete and insert |delete-insert|
3. Simple changes |simple-change| *changing*
4. Complex changes |complex-change|
4.1 Filter commands |filter|
4.2 Substitute |:substitute|
4.3 Search and replace |search-replace|
4.4 Changing tabs |change-tabs|
5. Copying and moving text |copy-move|
6. Formatting text |formatting|
@ -449,7 +453,19 @@ For example: >
==============================================================================
4. Complex changes *complex-change*
*!* *filter*
4.1 Filter commands *filter*
A filter is a program that accepts text at standard input, changes it in some
way, and sends it to standard output. You can use the commands below to send
some text through a filter, so that it is replace by the filter output.
Examples of filters are "sort", which sorts lines alphabetically, and
"indent", which formats C program files (you need a version of indent that
works like a filter; not all versions do). The 'shell' option specifies the
shell Vim uses to execute the filter command (See also the 'shelltype'
option). You can repeat filter commands with ".". Vim does not recognize a
comment (starting with '"') after the ":!" command.
*!*
!{motion}{filter} Filter {motion} text lines through the external
program {filter}.
@ -492,17 +508,9 @@ For example: >
{Visual}= Filter the highlighted lines like with ={motion}.
{not in Vi}
A filter is a program that accepts text at standard input, changes it in some
way, and sends it to standard output. You can use the commands above to send
some text through a filter. Examples of filters are "sort", which sorts lines
alphabetically, and "indent", which formats C program files (you need a
version of indent that works like a filter; not all versions do). The 'shell'
option specifies the shell Vim uses to execute the filter command (See also
the 'shelltype' option). You can repeat filter commands with ".". Vim does
not recognize a comment (starting with '"') after the ":!" command.
*:s* *:su* *:substitute*
4.2 Substitute *:substitute*
*:s* *:su*
:[range]s[ubstitute]/{pattern}/{string}/[&][c][e][g][p][r][i][I] [count]
For each line in [range] replace a match of {pattern}
with {string}.
@ -741,7 +749,9 @@ Example: >
This replaces an end-of-line with a new line containing the value of $HOME.
*:pro* *:promptfind*
4.3 Search and replace *search-replace*
*:pro* *:promptfind*
:promptf[ind] [string]
Put up a Search dialog. When [string] is given, it is
used as the initial search string.
@ -753,6 +763,8 @@ This replaces an end-of-line with a new line containing the value of $HOME.
given, it is used as the initial search string.
{only for Win32, Motif and GTK GUI}
4.4 Changing tabs *change-tabs*
*:ret* *:retab*
:[range]ret[ab][!] [new_tabstop]
Replace all sequences of white-space containing a

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
*eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -831,6 +831,8 @@ cscope_connection( [{num} , {dbpath} [, {prepend}]])
cursor( {lnum}, {col}) Number position cursor at {lnum}, {col}
delete( {fname}) Number delete file {fname}
did_filetype() Number TRUE if FileType autocommand event used
diff_filler( {lnum}) Number diff filler lines about {lnum}
diff_hlID( {lnum}, {col}) Number diff highlighting at {lnum}/{col}
escape( {string}, {chars}) String escape {chars} in {string} with '\'
eventhandler( ) Number TRUE if inside an event handler
executable( {expr}) Number 1 if executable {expr} exists
@ -932,7 +934,7 @@ strtrans( {expr}) String translate string to make it printable
submatch( {nr}) String specific match in ":substitute"
substitute( {expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub}
synID( {line}, {col}, {trans}) Number syntax ID at {line} and {col}
synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
synIDattr( {synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
synIDtrans( {synID}) Number translated syntax ID of {synID}
@ -1270,6 +1272,26 @@ did_filetype() Returns non-zero when autocommands are being executed and the
editing another buffer to set 'filetype' and load a syntax
file.
diff_filler({lnum}) *diff_filler()*
Returns the number of filler lines above line {lnum}.
These are the lines that were inserted at this point in
another diff'ed window. These filler lines are shown in the
display but don't exist in the buffer.
{lnum} is used like with |getline()|. Thus "." is the current
line, "'m" mark m, etc.
Returns 0 if the current window is not in diff mode.
diff_hlID({lnum}, {col}) *diff_hlID()*
Returns the highlight ID for diff mode at line {lnum} column
{col} (byte index). When the current line does not have a
diff change zero is returned.
{lnum} is used like with |getline()|. Thus "." is the current
line, "'m" mark m, etc.
{col} is 1 for the leftmost column, {lnum} is 1 for the first
line.
The highlight ID can be used with |synIDattr()| to obtain
syntax information about the highlighting.
escape({string}, {chars}) *escape()*
Escape the characters in {chars} that occur in {string} with a
backslash. Example: >
@ -2630,12 +2652,12 @@ substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
:echo substitute("testing", ".*", "\\U\\0", "")
< results in "TESTING".
synID({line}, {col}, {trans}) *synID()*
synID({lnum}, {col}, {trans}) *synID()*
The result is a Number, which is the syntax ID at the position
{line} and {col} in the current window.
{lnum} and {col} in the current window.
The syntax ID can be used with |synIDattr()| and
|synIDtrans()| to obtain syntax information about text.
{col} is 1 for the leftmost column, {line} is 1 for the first
{col} is 1 for the leftmost column, {lnum} is 1 for the first
line.
When {trans} is non-zero, transparent items are reduced to the
item that they reveal. This is useful when wanting to know

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -420,6 +420,16 @@ To go back to the automatic mechanism, delete the g:html_use_encoding
variable: >
:unlet html_use_encoding
<
Closed folds are kept as they are displayed. If you don't want closed folds
in the HTML use the |zR| command before converting.
For diff mode a sequence of more than 3 filler lines is displayed as three
lines with the middle line mentioning the total number of inserted lines. If
you prefer to see all the inserted lines use: >
:let html_whole_filler = 1
And to go back to displaying up to three lines again: >
:unlet html_whole_filler
*convert-to-XML* *convert-to-XHTML*
An alternative is to have the script generate XHTML (XML compliant HTML). To
do this set the "use_xhtml" variable: >

View File

@ -4161,6 +4161,7 @@ cc change.txt /*cc*
ch-syntax syntax.txt /*ch-syntax*
ch.vim syntax.txt /*ch.vim*
change-list-jumps motion.txt /*change-list-jumps*
change-tabs change.txt /*change-tabs*
change.txt change.txt /*change.txt*
changed-5.1 version5.txt /*changed-5.1*
changed-5.2 version5.txt /*changed-5.2*
@ -4417,6 +4418,8 @@ diff-mode diff.txt /*diff-mode*
diff-options diff.txt /*diff-options*
diff-patchexpr diff.txt /*diff-patchexpr*
diff.txt diff.txt /*diff.txt*
diff_filler() eval.txt /*diff_filler()*
diff_hlID() eval.txt /*diff_hlID()*
digraph-arg change.txt /*digraph-arg*
digraph-encoding digraph.txt /*digraph-encoding*
digraph-table digraph.txt /*digraph-table*
@ -4691,6 +4694,7 @@ foldlevel() eval.txt /*foldlevel()*
foldlevel-variable eval.txt /*foldlevel-variable*
foldstart-variable eval.txt /*foldstart-variable*
foldtext() eval.txt /*foldtext()*
foldtextresult() eval.txt /*foldtextresult()*
font-sizes gui_x11.txt /*font-sizes*
fontset mbyte.txt /*fontset*
foreground() eval.txt /*foreground()*
@ -5935,6 +5939,7 @@ search-commands pattern.txt /*search-commands*
search-offset pattern.txt /*search-offset*
search-pattern pattern.txt /*search-pattern*
search-range pattern.txt /*search-range*
search-replace change.txt /*search-replace*
searchpair() eval.txt /*searchpair()*
section motion.txt /*section*
sed-syntax syntax.txt /*sed-syntax*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
*todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,9 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Folding support for 2html. (Carl Osterwisch, Oct 4)
Now diff output!
Aborting at the ATTENTION prompt causes trouble:
buffer remains active, nwindows isn't closed (fixed in buffer.c)
alternate buffer gets "read error" flag.
@ -196,6 +193,10 @@ For version 7.0:
Also: when the environment variable exists, use it. If it doesn't
exist, set it. Requires good names: $VIM_USER_VIMRC $VIM_USER_DIR
xterm title: After setting a title, obtaining the title still may result in
the old one. Sometimes happens with the test scripts. Setting the title is
done with an ESC sequence, obtaining the old title with an X library call.
Invoking XFlush() before getting the title doesn't help.
- In the kvim/KDE source files fix the formatting.
- KDE version is called "kvim". Make it "gvim", like the others?
@ -360,6 +361,8 @@ name. (Charles Campbell)
Add gui_mch_browsedir() for Motif, KDE and Mac OS/X.
Translated manual pages: Install German one in /usr/local/man/de/man1/vim.1
Vi incompatibility:
9 In Ex mode, "u" undoes all changes, not just the last one. (John Cowan)
@ -1281,9 +1284,6 @@ Folding:
commands skip over a closed fold.
8 "H" and "L" count buffer lines instead of window lines. (Servatius Brandt)
8 Add a way to add fold-plugins. Johannes Zellner has one for VB.
7 When using 2html.vim, also reproduce folds as you can see them. When
someone doesn't want the folds he can disable them before converting.
First attempt by Carl Osterwisch, 2004 May 10.
7 When using manual folding, the undo command should also restore folds.
- Allow completely hiding a closed fold. Require showing a character in
'foldcolumn' to avoid the missing line goes unnoticed.

View File

@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
*version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -54,6 +54,7 @@ isn't set. This avoids creating buffers without a name that are not useful.
The "2html.vim" script now converts closed folds to HTML. This means the HTML
looks like its displayed, with the same folds open and closed. Use "zR" if no
folds should appear in the HTML. (partly by Carl Osterwisch)
Diff mode now is also converted as it is displayed.
==============================================================================
NEW FEATURES *new-7*
@ -187,6 +188,11 @@ SQL-Informix syntax file. (Dean L Hill)
PHP compiler plugin. (Doug Kearns)
New Keymaps: ~
Sinhala (Sri Lanka) (Harshula Jayasuriya)
New message translations: ~
The Ukranian messages are now also available in cp1251.

View File

@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Oct 10
" Last Change: 2004 Oct 12
" (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
" (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
@ -251,20 +251,67 @@ if has('folding')
unlet s:c
endif
" For diff filler lines
if has('diff')
if s:numblines
let s:fillerline = strpart(' ', 0, strlen(line("$"))) . ' '
else
let s:fillerline = ''
endif
let s:fillchar = &fillchars[matchend(&fillchars, 'diff:')]
if s:fillchar == ''
let s:fillchar = '-'
endif
while strlen(s:fillerline) < &columns
let s:fillerline = s:fillerline . s:fillchar
endwhile
endif
while s:lnum <= s:end
" If there are filler lines for diff mode, show these above the line.
let s:filler = diff_filler(s:lnum)
if s:filler > 0
let s:n = s:filler
while s:n > 0
if s:n > 2 && s:n < s:filler && !exists("html_whole_filler")
let s:new = strpart(s:fillerline, 0, 3) . " " . s:filler . " inserted lines "
let s:new = s:new . strpart(s:fillerline, strlen(s:new))
let s:n = 2
else
let s:new = s:fillerline
endif
let s:id_name = "DiffDelete"
let s:id = hlID(s:id_name)
let s:new = '<span class="' . s:id_name . '">' . s:new . '</span>'
" Add the class to class list if it's not there yet
if stridx(s:idlist, "," . s:id . ",") == -1
let s:idlist = s:idlist . s:id . ","
endif
exe s:newwin . "wincmd w"
exe "normal! a" . strtrans(s:new) . "\n\e"
exe s:orgwin . "wincmd w"
let s:n = s:n - 1
endwhile
unlet s:n
endif
unlet s:filler
" Start the line with the line number.
if s:numblines
let s:new = strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . ' '
else
let s:new = ""
endif
" Get the current line
let s:line = getline(s:lnum)
let s:new = ""
if has('folding') && foldclosed(s:lnum) > -1
"
" This is the beginning of a folded block
"
if s:numblines
let s:new = strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . ' '
endif
let s:line = foldtextresult(s:lnum)
let s:new = s:new . s:line
@ -293,18 +340,34 @@ while s:lnum <= s:end
let s:len = strlen(s:line)
if s:numblines
let s:new = '<span class="lnr">' . strpart(' ', 0, strlen(line("$")) - strlen(s:lnum)) . s:lnum . '</span> '
let s:new = '<span class="lnr">' . s:new . '</span> '
endif
" Get the diff attribute, if any.
let s:diffattr = diff_hlID(s:lnum, 1)
" Loop over each character in the line
let s:col = 1
while s:col <= s:len
let s:startcol = s:col " The start column for processing text
let s:id = synID(s:lnum, s:col, 1)
let s:col = s:col + 1
" Speed loop (it's small - that's the trick)
" Go along till we find a change in synID
while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile
if s:diffattr
let s:id = diff_hlID(s:lnum, s:col)
let s:col = s:col + 1
" Speed loop (it's small - that's the trick)
" Go along till we find a change in hlID
while s:col <= s:len && s:id == diff_hlID(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
while s:len < &columns
" Add spaces at the end to mark the changed line.
let s:line = s:line . ' '
let s:len = s:len + 1
endwhile
else
let s:id = synID(s:lnum, s:col, 1)
let s:col = s:col + 1
" Speed loop (it's small - that's the trick)
" Go along till we find a change in synID
while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile
endif
" Output the text with the same synID, with class set to {s:id_name}
let s:id = synIDtrans(s:id)
@ -457,3 +520,4 @@ if !exists("html_use_css")
delfunc s:HtmlOpening
delfunc s:HtmlClosing
endif
silent! unlet s:htmlfoldtext s:fillerline s:diffattr

2
src/auto/configure vendored
View File

@ -2271,7 +2271,7 @@ echo "configure:2266: checking Tcl version" >&5
echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6
echo "configure:2273: checking for location of Tcl include" >&5
if test "x$MACOSX" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
else
tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
fi

View File

@ -713,7 +713,7 @@ if test "$enable_tclinterp" = "yes"; then
AC_MSG_CHECKING(for location of Tcl include)
if test "x$MACOSX" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
else
dnl For Mac OS X 10.3, use the OS-provided framework location
tclinc="/System/Library/Frameworks/Tcl.framework/Headers"

View File

@ -274,6 +274,8 @@ static void f_cscope_connection __ARGS((VAR argvars, VAR retvar));
static void f_cursor __ARGS((VAR argsvars, VAR retvar));
static void f_delete __ARGS((VAR argvars, VAR retvar));
static void f_did_filetype __ARGS((VAR argvars, VAR retvar));
static void f_diff_filler __ARGS((VAR argvars, VAR retvar));
static void f_diff_hlID __ARGS((VAR argvars, VAR retvar));
static void f_escape __ARGS((VAR argvars, VAR retvar));
static void f_eventhandler __ARGS((VAR argvars, VAR retvar));
static void f_executable __ARGS((VAR argvars, VAR retvar));
@ -2837,6 +2839,8 @@ static struct fst
{"cursor", 2, 2, f_cursor},
{"delete", 1, 1, f_delete},
{"did_filetype", 0, 0, f_did_filetype},
{"diff_filler", 1, 1, f_diff_filler},
{"diff_hlID", 2, 2, f_diff_hlID},
{"escape", 2, 2, f_escape},
{"eventhandler", 0, 0, f_eventhandler},
{"executable", 1, 1, f_executable},
@ -3976,6 +3980,79 @@ f_did_filetype(argvars, retvar)
#endif
}
/*
* "diff_filler()" function
*/
/*ARGSUSED*/
static void
f_diff_filler(argvars, retvar)
VAR argvars;
VAR retvar;
{
#ifdef FEAT_DIFF
retvar->var_val.var_number = diff_check_fill(curwin, get_var_lnum(argvars));
#endif
}
/*
* "diff_hlID()" function
*/
/*ARGSUSED*/
static void
f_diff_hlID(argvars, retvar)
VAR argvars;
VAR retvar;
{
#ifdef FEAT_DIFF
linenr_T lnum = get_var_lnum(argvars);
static linenr_T prev_lnum = 0;
static int changedtick = 0;
static int fnum = 0;
static int change_start = 0;
static int change_end = 0;
static enum hlf_value hlID = 0;
int filler_lines;
int col;
if (lnum != prev_lnum
|| changedtick != curbuf->b_changedtick
|| fnum != curbuf->b_fnum)
{
/* New line, buffer, change: need to get the values. */
filler_lines = diff_check(curwin, lnum);
if (filler_lines < 0)
{
if (filler_lines == -1)
{
change_start = MAXCOL;
change_end = -1;
if (diff_find_change(curwin, lnum, &change_start, &change_end))
hlID = HLF_ADD; /* added line */
else
hlID = HLF_CHD; /* changed line */
}
else
hlID = HLF_ADD; /* added line */
}
else
hlID = (enum hlf_value)0;
prev_lnum = lnum;
changedtick = curbuf->b_changedtick;
fnum = curbuf->b_fnum;
}
if (hlID == HLF_CHD || hlID == HLF_TXD)
{
col = get_var_number(&argvars[1]) - 1;
if (col >= change_start && col <= change_end)
hlID = HLF_TXD; /* changed text */
else
hlID = HLF_CHD; /* changed line */
}
retvar->var_val.var_number = hlID == (enum hlf_value)0 ? 0 : (int)hlID;
#endif
}
/*
* "escape({string}, {chars})" function
*/

View File

@ -1535,13 +1535,7 @@ get_x11_windis()
get_x11_title(test_only)
int test_only;
{
int retval;
retval = get_x11_thing(TRUE, test_only);
/* could not get old title: oldtitle == NULL */
return retval;
return get_x11_thing(TRUE, test_only);
}
/*
@ -1829,7 +1823,8 @@ mch_settitle(title, icon)
* than x11 calls, because the x11 calls don't always work
*/
#ifdef FEAT_GUI_KDE
/* dont know why but KDE needs this one as we don't go through the next function... */
/* dont know why but KDE needs this one as we don't go through the next
* function... */
gui_mch_settitle(title, icon);
#endif
if ((type || *T_TS != NUL) && title != NULL)

View File

@ -47,6 +47,8 @@ test1.out: test1.in
.in.out:
-rm -f $*.failed test.ok X*
cp $*.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up
@-sleep .2
$(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in $*.in
@/bin/sh -c "if diff test.out $*.ok; \
then mv -f test.out $*.out; \