summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/editing.txt4
-rw-r--r--runtime/doc/eval.txt405
-rw-r--r--runtime/doc/index.txt5
-rw-r--r--runtime/doc/map.txt4
-rw-r--r--runtime/doc/options.txt5
-rw-r--r--runtime/doc/tabpage.txt30
-rw-r--r--runtime/doc/tagsrch.txt19
-rw-r--r--runtime/doc/todo.txt59
-rw-r--r--runtime/doc/usr_08.txt92
-rw-r--r--runtime/doc/version7.txt11
-rw-r--r--runtime/doc/windows.txt8
11 files changed, 393 insertions, 249 deletions
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index dc22930bf..391220d00 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 7.0aa. Last change: 2006 Feb 18
+*editing.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -819,7 +819,7 @@ USING THE ARGUMENT LIST
each file.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
- Also see |:windo| and |:bufdo|.
+ Also see |:windo|, |:tabdo| and |:bufdo|.
Example: >
:args *.c
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index adcd6f341..edb2fc334 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2006 Feb 22
+*eval.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -577,8 +577,8 @@ Expression syntax summary, from least to most significant:
etc. As above, append ? for ignoring case, # for
matching case
- expr5 is expr5 same List instance
- expr5 isnot expr5 different List instance
+ expr5 is expr5 same |List| instance
+ expr5 isnot expr5 different |List| instance
|expr5| expr6 + expr6 .. number addition or list concatenation
expr6 - expr6 .. number subtraction
@@ -593,16 +593,16 @@ Expression syntax summary, from least to most significant:
+ expr7 unary plus
-|expr8| expr8[expr1] byte of a String or item of a List
- expr8[expr1 : expr1] substring of a String or sublist of a List
- expr8.name entry in a Dictionary
- expr8(expr1, ...) function call with Funcref variable
+|expr8| expr8[expr1] byte of a String or item of a |List|
+ expr8[expr1 : expr1] substring of a String or sublist of a |List|
+ expr8.name entry in a |Dictionary|
+ expr8(expr1, ...) function call with |Funcref| variable
|expr9| number number constant
"string" string constant, backslash is special
'string' string constant, ' is doubled
- [expr1, ...] List
- {expr1: expr1, ...} Dictionary
+ [expr1, ...] |List|
+ {expr1: expr1, ...} |Dictionary|
&option option value
(expr1) nested expression
variable internal variable
@@ -714,23 +714,23 @@ Examples:
"abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
*E691* *E692*
-A List can only be compared with a List and only "equal", "not equal" and "is"
-can be used. This compares the values of the list, recursively. Ignoring
-case means case is ignored when comparing item values.
+A |List| can only be compared with a |List| and only "equal", "not equal" and
+"is" can be used. This compares the values of the list, recursively.
+Ignoring case means case is ignored when comparing item values.
*E735* *E736*
-A Dictionary can only be compared with a Dictionary and only "equal", "not
-equal" and "is" can be used. This compares the key/values of the Dictionary,
+A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
+equal" and "is" can be used. This compares the key/values of the |Dictionary|
recursively. Ignoring case means case is ignored when comparing item values.
*E693* *E694*
-A Funcref can only be compared with a Funcref and only "equal" and "not equal"
-can be used. Case is never ignored.
+A |Funcref| can only be compared with a |Funcref| and only "equal" and "not
+equal" can be used. Case is never ignored.
-When using "is" or "isnot" with a List this checks if the expressions are
-referring to the same List instance. A copy of a List is different from the
-original List. When using "is" without a List it is equivalent to using
-"equal", using "isnot" equivalent to using "not equal". Except that a
+When using "is" or "isnot" with a |List| this checks if the expressions are
+referring to the same |List| instance. A copy of a |List| is different from
+the original |List|. When using "is" without a |List| it is equivalent to
+using "equal", using "isnot" equivalent to using "not equal". Except that a
different type means the values are different. "4 == '4'" is true, "4 is '4'"
is false.
@@ -763,12 +763,12 @@ can be matched like an ordinary character. Examples:
expr5 and expr6 *expr5* *expr6*
---------------
-expr6 + expr6 .. Number addition or List concatenation *expr-+*
+expr6 + expr6 .. Number addition or |List| concatenation *expr-+*
expr6 - expr6 .. Number subtraction *expr--*
expr6 . expr6 .. String concatenation *expr-.*
-For Lists only "+" is possible and then both expr6 must be a list. The result
-is a new list with the two lists Concatenated.
+For |List|s only "+" is possible and then both expr6 must be a list. The
+result is a new list with the two lists Concatenated.
expr7 * expr7 .. number multiplication *expr-star*
expr7 / expr7 .. number division *expr-/*
@@ -783,7 +783,7 @@ Note the difference between "+" and ".":
When the righthand side of '/' is zero, the result is 0x7fffffff.
When the righthand side of '%' is zero, the result is 0.
-None of these work for Funcrefs.
+None of these work for |Funcref|s.
expr7 *expr7*
@@ -806,7 +806,7 @@ These three can be repeated and mixed. Examples:
expr8 *expr8*
-----
-expr8[expr1] item of String or List *expr-[]* *E111*
+expr8[expr1] item of String or |List| *expr-[]* *E111*
If expr8 is a Number or String this results in a String that contains the
expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
@@ -821,13 +821,14 @@ If the length of the String is less than the index, the result is an empty
String. A negative index always results in an empty string (reason: backwards
compatibility). Use [-1:] to get the last byte.
-If expr8 is a List then it results the item at index expr1. See |list-index|
+If expr8 is a |List| then it results the item at index expr1. See |list-index|
for possible index values. If the index is out of range this results in an
error. Example: >
:let item = mylist[-1] " get last item
-Generally, if a List index is equal to or higher than the length of the List,
-or more negative than the length of the List, this results in an error.
+Generally, if a |List| index is equal to or higher than the length of the
+|List|, or more negative than the length of the |List|, this results in an
+error.
expr8[expr1a : expr1b] substring or sublist *expr-[:]*
@@ -852,20 +853,22 @@ Examples: >
:let s = line(".")[4:] " from the fifth byte to the end
:let s = s[:-3] " remove last two bytes
-If expr8 is a List this results in a new List with the items indicated by the
-indexes expr1a and expr1b. This works like with a String, as explained just
-above, except that indexes out of range cause an error. Examples: >
+If expr8 is a |List| this results in a new |List| with the items indicated by
+the indexes expr1a and expr1b. This works like with a String, as explained
+just above, except that indexes out of range cause an error. Examples: >
:let l = mylist[:3] " first four items
:let l = mylist[4:4] " List with one item
:let l = mylist[:] " shallow copy of a List
-Using expr8[expr1] or expr8[expr1a : expr1b] on a Funcref results in an error.
+Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an
+error.
-expr8.name entry in a Dictionary *expr-entry*
+expr8.name entry in a |Dictionary| *expr-entry*
-If expr8 is a Dictionary and it is followed by a dot, then the following name
-will be used as a key in the Dictionary. This is just like: expr8[name].
+If expr8 is a |Dictionary| and it is followed by a dot, then the following
+name will be used as a key in the |Dictionary|. This is just like:
+expr8[name].
The name must consist of alphanumeric characters, just like a variable name,
but it may start with a number. Curly braces cannot be used.
@@ -881,7 +884,7 @@ Note that the dot is also used for String concatenation. To avoid confusion
always put spaces around the dot for String concatenation.
-expr8(expr1, ...) Funcref function call
+expr8(expr1, ...) |Funcref| function call
When expr8 is a |Funcref| type variable, invoke the function it refers to.
@@ -1029,8 +1032,8 @@ specified by what is prepended:
|function-argument| a: Function argument (only inside a function).
|vim-variable| v: Global, predefined by Vim.
-The scope name by itself can be used as a Dictionary. For example, to delete
-all script-local variables: >
+The scope name by itself can be used as a |Dictionary|. For example, to
+delete all script-local variables: >
:for k in keys(s:)
: unlet s:[k]
:endfor
@@ -1327,7 +1330,7 @@ v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
v Virtual Replace mode
*v:key* *key-variable*
-v:key Key of the current item of a Dictionary. Only valid while
+v:key Key of the current item of a |Dictionary|. Only valid while
evaluating the expression used with |map()| and |filter()|.
Read-only.
@@ -1459,8 +1462,8 @@ v:throwpoint The point where the exception most recently caught and not
< Output: "Exception from test.vim, line 2"
*v:val* *val-variable*
-v:val Value of the current item of a List or Dictionary. Only valid
- while evaluating the expression used with |map()| and
+v:val Value of the current item of a |List| or |Dictionary|. Only
+ valid while evaluating the expression used with |map()| and
|filter()|. Read-only.
*v:version* *version-variable*
@@ -1486,7 +1489,7 @@ See |function-list| for a list grouped by what the function is used for.
USAGE RESULT DESCRIPTION ~
-add( {list}, {item}) List append {item} to List {list}
+add( {list}, {item}) List append {item} to |List| {list}
append( {lnum}, {string}) Number append {string} below line {lnum}
append( {lnum}, {list}) Number append lines {list} below line {lnum}
argc() Number number of files in the argument list
@@ -1595,9 +1598,9 @@ inputsecret( {prompt} [, {text}]) String like input() but hiding the text
insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}]
isdirectory( {directory}) Number TRUE if {directory} is a directory
islocked( {expr}) Number TRUE if {expr} is locked
-items( {dict}) List List of key-value pairs in {dict}
+items( {dict}) List key-value pairs in {dict}
join( {list} [, {sep}]) String join {list} items into one String
-keys( {dict}) List List of keys in {dict}
+keys( {dict}) List keys in {dict}
len( {expr}) Number the length of {expr}
libcall( {lib}, {func}, {arg}) String call {func} in library {lib} with {arg}
libcallnr( {lib}, {func}, {arg}) Number idem, but return a Number
@@ -1671,7 +1674,7 @@ spellbadword() String badly spelled word at cursor
spellsuggest( {word} [, {max} [, {capital}]])
List spelling suggestions
split( {expr} [, {pat} [, {keepempty}]])
- List make List from {pat} separated {expr}
+ List make |List| from {pat} separated {expr}
strftime( {format}[, {time}]) String time in specified format
stridx( {haystack}, {needle}[, {start}])
Number index of {needle} in {haystack}
@@ -1702,7 +1705,7 @@ toupper( {expr}) String the String {expr} switched to uppercase
tr( {src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr}
type( {name}) Number type of variable {name}
-values( {dict}) List List of values in {dict}
+values( {dict}) List values in {dict}
virtcol( {expr}) Number screen column of cursor or mark
visualmode( [expr]) String last visual mode used
winbufnr( {nr}) Number buffer number of window {nr}
@@ -1716,18 +1719,18 @@ writefile({list}, {fname} [, {binary}])
Number write list of lines to file {fname}
add({list}, {expr}) *add()*
- Append the item {expr} to List {list}. Returns the resulting
- List. Examples: >
+ Append the item {expr} to |List| {list}. Returns the
+ resulting |List|. Examples: >
:let alist = add([1, 2, 3], item)
:call add(mylist, "woodstock")
-< Note that when {expr} is a List it is appended as a single
- item. Use |extend()| to concatenate Lists.
+< Note that when {expr} is a |List| it is appended as a single
+ item. Use |extend()| to concatenate |List|s.
Use |insert()| to add an item at another position.
append({lnum}, {expr}) *append()*
- When {expr} is a List: Append each item of the List as a text
- line below line {lnum} in the current buffer.
+ When {expr} is a |List|: Append each item of the |List| as a
+ text line below line {lnum} in the current buffer.
Otherwise append {expr} as one text line below line {lnum} in
the current buffer.
{lnum} can be zero to insert a line before the first one.
@@ -1891,9 +1894,9 @@ byteidx({expr}, {nr}) *byteidx()*
is returned.
call({func}, {arglist} [, {dict}]) *call()* *E699*
- Call function {func} with the items in List {arglist} as
+ Call function {func} with the items in |List| {arglist} as
arguments.
- {func} can either be a Funcref or the name of a function.
+ {func} can either be a |Funcref| or the name of a function.
a:firstline and a:lastline are set to the cursor line.
Returns the return value of the called function.
{dict} is for functions with the "dict" attribute. It will be
@@ -2009,17 +2012,17 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
*copy()*
copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't
different from using {expr} directly.
- When {expr} is a List a shallow copy is created. This means
- that the original List can be changed without changing the
+ When {expr} is a |List| a shallow copy is created. This means
+ that the original |List| can be changed without changing the
copy, and vise versa. But the items are identical, thus
- changing an item changes the contents of both Lists. Also see
- |deepcopy()|.
+ changing an item changes the contents of both |List|s. Also
+ see |deepcopy()|.
count({comp}, {expr} [, {ic} [, {start}]]) *count()*
Return the number of times an item with value {expr} appears
- in List or Dictionary {comp}.
+ in |List| or |Dictionary| {comp}.
If {start} is given then start with the item with this index.
- {start} can only be used with a List.
+ {start} can only be used with a |List|.
When {ic} is given and it's non-zero then case is ignored.
@@ -2080,16 +2083,16 @@ cursor({lnum}, {col}) *cursor()*
deepcopy({expr}[, {noref}]) *deepcopy()* *E698*
Make a copy of {expr}. For Numbers and Strings this isn't
different from using {expr} directly.
- When {expr} is a List a full copy is created. This means
- that the original List can be changed without changing the
- copy, and vise versa. When an item is a List, a copy for it
+ When {expr} is a |List| a full copy is created. This means
+ that the original |List| can be changed without changing the
+ copy, and vise versa. When an item is a |List|, a copy for it
is made, recursively. Thus changing an item in the copy does
- not change the contents of the original List.
- When {noref} is omitted or zero a contained List or Dictionary
- is only copied once. All references point to this single
- copy. With {noref} set to 1 every occurrence of a List or
- Dictionary results in a new copy. This also means that a
- cyclic reference causes deepcopy() to fail.
+ not change the contents of the original |List|.
+ When {noref} is omitted or zero a contained |List| or
+ |Dictionary| is only copied once. All references point to
+ this single copy. With {noref} set to 1 every occurrence of a
+ |List| or |Dictionary| results in a new copy. This also means
+ that a cyclic reference causes deepcopy() to fail.
*E724*
Nesting is possible up to 100 levels. When there is an item
that refers back to a higher level making a deep copy with
@@ -2100,7 +2103,7 @@ delete({fname}) *delete()*
Deletes the file by the name {fname}. The result is a Number,
which is 0 if the file was deleted successfully, and non-zero
when the deletion failed.
- Use |remove()| to delete an item from a List.
+ Use |remove()| to delete an item from a |List|.
*did_filetype()*
did_filetype() Returns non-zero when autocommands are being executed and the
@@ -2135,10 +2138,10 @@ diff_hlID({lnum}, {col}) *diff_hlID()*
empty({expr}) *empty()*
Return the Number 1 if {expr} is empty, zero otherwise.
- A List or Dictionary is empty when it does not have any items.
- A Number is empty when its value is zero.
- For a long List this is much faster then comparing the length
- with zero.
+ A |List| or |Dictionary| is empty when it does not have any
+ items. A Number is empty when its value is zero.
+ For a long |List| this is much faster then comparing the
+ length with zero.
escape({string}, {chars}) *escape()*
Escape the characters in {chars} that occur in {string} with a
@@ -2151,7 +2154,7 @@ escape({string}, {chars}) *escape()*
eval({string}) Evaluate {string} and return the result. Especially useful to
turn the result of |string()| back into the original value.
This works for Numbers, Strings and composites of them.
- Also works for Funcrefs that refer to existing functions.
+ Also works for |Funcref|s that refer to existing functions.
eventhandler() *eventhandler()*
Returns 1 when inside an event handler. That is that Vim got
@@ -2195,9 +2198,9 @@ exists({expr}) The result is a Number, which is non-zero if {expr} is
|user-functions|).
varname internal variable (see
|internal-variables|). Also works
- for |curly-braces-names|, Dictionary
- entries, List items, etc. Beware that
- this may cause functions to be
+ for |curly-braces-names|, |Dictionary|
+ entries, |List| items, etc. Beware
+ that this may cause functions to be
invoked cause an error message for an
invalid expression.
:cmdname Ex command: built-in command, user
@@ -2323,9 +2326,9 @@ expand({expr} [, {flag}]) *expand()*
getting the raw output of an external command.
extend({expr1}, {expr2} [, {expr3}]) *extend()*
- {expr1} and {expr2} must be both Lists or both Dictionaries.
+ {expr1} and {expr2} must be both |List|s or both Dictionaries.
- If they are Lists: Append {expr2} to {expr1}.
+ If they are |List|s: Append {expr2} to {expr1}.
If {expr3} is given insert the items of {expr2} before item
{expr3} in {expr1}. When {expr3} is zero insert before the
first item. When {expr3} is equal to len({expr1}) then
@@ -2362,28 +2365,28 @@ filereadable({file}) *filereadable()*
filter({expr}, {string}) *filter()*
- {expr} must be a List or a Dictionary.
+ {expr} must be a |List| or a |Dictionary|.
For each item in {expr} evaluate {string} and when the result
- is zero remove the item from the List or Dictionary.
+ is zero remove the item from the |List| or |Dictionary|.
Inside {string} |v:val| has the value of the current item.
- For a Dictionary |v:key| has the key of the current item.
+ For a |Dictionary| |v:key| has the key of the current item.
Examples: >
:call filter(mylist, 'v:val !~ "OLD"')
< Removes the items where "OLD" appears. >
:call filter(mydict, 'v:key >= 8')
< Removes the items with a key below 8. >
:call filter(var, 0)
-< Removes all the items, thus clears the List or Dictionary.
+< Removes all the items, thus clears the |List| or |Dictionary|.
Note that {string} is the result of expression and is then
used as an expression again. Often it is good to use a
|literal-string| to avoid having to double backslashes.
- The operation is done in-place. If you want a List or
- Dictionary to remain unmodified make a copy first: >
+ The operation is done in-place. If you want a |List| or
+ |Dictionary| to remain unmodified make a copy first: >
:let l = filter(copy(mylist), 'v:val =~ "KEEP"')
-< Returns {expr}, the List or Dictionary that was filtered.
+< Returns {expr}, the |List| or |Dictionary| that was filtered.
When an error is encountered while evaluating {string} no
further items in {expr} are processed.
@@ -2477,35 +2480,35 @@ foreground() Move the Vim window to the foreground. Useful when sent from
function({name}) *function()* *E700*
- Return a Funcref variable that refers to function {name}.
+ Return a |Funcref| variable that refers to function {name}.
{name} can be a user defined function or an internal function.
garbagecollect() *garbagecollect()*
- Cleanup unused Lists and Dictionaries that have circular
+ Cleanup unused |List|s and Dictionaries that have circular
references. There is hardly ever a need to invoke this
function, as it is automatically done when Vim runs out of
memory or is waiting for the user to press a key after
'updatetime'. Items without circular references are always
freed when they become unused.
- This is useful if you have deleted a very big List and/or
- Dictionary with circular references in a script that runs for
- a long time.
+ This is useful if you have deleted a very big |List| and/or
+ |Dictionary| with circular references in a script that runs
+ for a long time.
get({list}, {idx} [, {default}]) *get()*
- Get item {idx} from List {list}. When this item is not
+ Get item {idx} from |List| {list}. When this item is not
available return {default}. Return zero when {default} is
omitted.
get({dict}, {key} [, {default}])
- Get item with key {key} from Dictionary {dict}. When this
+ Get item with key {key} from |Dictionary| {dict}. When this
item is not available return {default}. Return zero when
{default} is omitted.
*getbufline()*
getbufline({expr}, {lnum} [, {end}])
- Return a List with the lines starting from {lnum} to {end}
- (inclusive) in the buffer {expr}. If {end} is omitted, a List
- with only the line {lnum} is returned.
+ Return a |List| with the lines starting from {lnum} to {end}
+ (inclusive) in the buffer {expr}. If {end} is omitted, a
+ |List| with only the line {lnum} is returned.
For the use of {expr}, see |bufname()| above.
@@ -2513,15 +2516,15 @@ getbufline({expr}, {lnum} [, {end}])
buffer. Otherwise a number must be used.
When {lnum} is smaller than 1 or bigger than the number of
- lines in the buffer, an empty List is returned.
+ lines in the buffer, an empty |List| is returned.
When {end} is greater than the number of lines in the buffer,
it is treated as {end} is set to the number of lines in the
- buffer. When {end} is before {lnum} an empty List is
+ buffer. When {end} is before {lnum} an empty |List| is
returned.
This function works only for loaded buffers. For unloaded and
- non-existing buffers, an empty List is returned.
+ non-existing buffers, an empty |List| is returned.
Example: >
:let lines = getbufline(bufnr("myfile"), 1, "$")
@@ -2697,12 +2700,12 @@ getline({lnum} [, {end}])
< When {lnum} is smaller than 1 or bigger than the number of
lines in the buffer, an empty string is returned.
- When {end} is given the result is a List where each item is a
- line from the current buffer in the range {lnum} to {end},
+ When {end} is given the result is a |List| where each item is
+ a line from the current buffer in the range {lnum} to {end},
including line {end}.
{end} is used in the same way as {lnum}.
Non-existing lines are silently omitted.
- When {end} is before {lnum} an empty List is returned.
+ When {end} is before {lnum} an empty |List| is returned.
Example: >
:let start = line('.')
:let end = search("^$") - 1
@@ -2829,8 +2832,8 @@ has({feature}) The result is a Number, which is 1 if the feature {feature} is
has_key({dict}, {key}) *has_key()*
- The result is a Number, which is 1 if Dictionary {dict} has an
- entry with key {key}. Zero otherwise.
+ The result is a Number, which is 1 if |Dictionary| {dict} has
+ an entry with key {key}. Zero otherwise.
hasmapto({what} [, {mode}]) *hasmapto()*
@@ -2982,7 +2985,7 @@ indent({lnum}) The result is a Number, which is indent of line {lnum} in the
index({list}, {expr} [, {start} [, {ic}]]) *index()*
- Return the lowest index in List {list} where the item has a
+ Return the lowest index in |List| {list} where the item has a
value equal to {expr}.
If {start} is given then start looking at the item with index
{start} (may be negative for an item relative to the end).
@@ -3093,18 +3096,18 @@ inputsecret({prompt} [, {text}]) *inputsecret()*
NOTE: Command-line completion is not supported.
insert({list}, {item} [, {idx}]) *insert()*
- Insert {item} at the start of List {list}.
+ Insert {item} at the start of |List| {list}.
If {idx} is specified insert {item} before the item with index
{idx}. If {idx} is zero it goes before the first item, just
like omitting {idx}. A negative {idx} is also possible, see
|list-index|. -1 inserts just before the last item.
- Returns the resulting List. Examples: >
+ Returns the resulting |List|. Examples: >
:let mylist = insert([2, 3, 5], 1)
:call insert(mylist, 4, -1)
:call insert(mylist, 6, len(mylist))
< The last example can be done simpler with |add()|.
- Note that when {item} is a List it is inserted as a single
- item. Use |extend()| to concatenate Lists.
+ Note that when {item} is a |List| it is inserted as a single
+ item. Use |extend()| to concatenate |List|s.
isdirectory({directory}) *isdirectory()*
The result is a Number, which is non-zero when a directory
@@ -3115,8 +3118,8 @@ isdirectory({directory}) *isdirectory()*
islocked({expr}) *islocked()*
The result is a Number, which is non-zero when {expr} is the
name of a locked variable.
- {expr} must be the name of a variable, List item or Dictionary
- entry, not the variable itself! Example: >
+ {expr} must be the name of a variable, |List| item or
+ |Dictionary| entry, not the variable itself! Example: >
:let alist = [0, ['a', 'b'], 2, 3]
:lockvar 1 alist
:echo islocked('alist') " 1
@@ -3126,9 +3129,10 @@ islocked({expr}) *islocked()*
message. Use |exists()| to check for existance.
items({dict}) *items()*
- Return a List with all the key-value pairs of {dict}. Each
- List item is a list with two items: the key of a {dict} entry
- and the value of this entry. The List is in arbitrary order.
+ Return a |List| with all the key-value pairs of {dict}. Each
+ |List| item is a list with two items: the key of a {dict}
+ entry and the value of this entry. The |List| is in arbitrary
+ order.
join({list} [, {sep}]) *join()*
@@ -3138,22 +3142,22 @@ join({list} [, {sep}]) *join()*
Note that {sep} is not added at the end. You might want to
add it there too: >
let lines = join(mylist, "\n") . "\n"
-< String items are used as-is. Lists and Dictionaries are
+< String items are used as-is. |List|s and Dictionaries are
converted into a string like with |string()|.
The opposite function is |split()|.
keys({dict}) *keys()*
- Return a List with all the keys of {dict}. The List is in
+ Return a |List| with all the keys of {dict}. The |List| is in
arbitrary order.
*len()* *E701*
len({expr}) The result is a Number, which is the length of the argument.
When {expr} is a String or a Number the length in bytes is
used, as with |strlen()|.
- When {expr} is a List the number of items in the List is
+ When {expr} is a |List| the number of items in the |List| is
returned.
- When {expr} is a Dictionary the number of entries in the
- Dictionary is returned.
+ When {expr} is a |Dictionary| the number of entries in the
+ |Dictionary| is returned.
Otherwise an error is given.
*libcall()* *E364* *E368*
@@ -3259,11 +3263,11 @@ localtime() *localtime()*
map({expr}, {string}) *map()*
- {expr} must be a List or a Dictionary.
+ {expr} must be a |List| or a |Dictionary|.
Replace each item in {expr} with the result of evaluating
{string}.
Inside {string} |v:val| has the value of the current item.
- For a Dictionary |v:key| has the key of the current item.
+ For a |Dictionary| |v:key| has the key of the current item.
Example: >
:call map(mylist, '"> " . v:val . " <"')
< This puts "> " before and " <" after each item in "mylist".
@@ -3273,11 +3277,11 @@ map({expr}, {string}) *map()*
|literal-string| to avoid having to double backslashes. You
still have to double ' quotes
- The operation is done in-place. If you want a List or
- Dictionary to remain unmodified make a copy first: >
+ The operation is done in-place. If you want a |List| or
+ |Dictionary| to remain unmodified make a copy first: >
:let tlist = map(copy(mylist), ' & . "\t"')
-< Returns {expr}, the List or Dictionary that was filtered.
+< Returns {expr}, the |List| or |Dictionary| that was filtered.
When an error is encountered while evaluating {string} no
further items in {expr} are processed.
@@ -3335,13 +3339,13 @@ mapcheck({name}[, {mode}]) *mapcheck()*
mapping for "_v" or for "_vvv".
match({expr}, {pat}[, {start}[, {count}]]) *match()*
- When {expr} is a List then this returns the index of the first
- item where {pat} matches. Each item is used as a String,
- Lists and Dictionaries are used as echoed.
+ When {expr} is a |List| then this returns the index of the
+ first item where {pat} matches. Each item is used as a
+ String, |List|s and Dictionaries are used as echoed.
Otherwise, {expr} is used as a String. The result is a
Number, which gives the index (byte offset) in {expr} where
{pat} matches.
- A match at the first character or List item returns zero.
+ A match at the first character or |List| item returns zero.
If there is no match -1 is returned.
Example: >
:echo match("testing", "ing") " results in 4
@@ -3359,10 +3363,10 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()*
is found in a String the search for the next one starts on
character further. Thus this example results in 1: >
echo match("testing", "..", 0, 2)
-< In a List the search continues in the next item.
+< In a |List| the search continues in the next item.
If {start} is given, the search starts from byte index
- {start} in a String or item {start} in a List.
+ {start} in a String or item {start} in a |List|.
The result, however, is still the index counted from the
first character/item. Example: >
:echo match("testing", "ing", 2)
@@ -3374,7 +3378,7 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()*
For a String, if {start} < 0, it will be set to 0. For a list
the index is counted from the end.
If {start} is out of range (> strlen({expr} for a String or
- > len({expr} for a List) -1 is returned.
+ > len({expr} for a |List|) -1 is returned.
See |pattern| for the patterns that are accepted.
The 'ignorecase' option is used to set the ignore-caseness of
@@ -3398,10 +3402,10 @@ matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
< results in "7". >
:echo matchend("testing", "ing", 5)
< result is "-1".
- When {expr} is a List the result is equal to match().
+ When {expr} is a |List| the result is equal to match().
matchlist({expr}, {pat}[, {start}[, {count}]]) *matchlist()*
- Same as match(), but return a List. The first item in the
+ Same as match(), but return a |List|. The first item in the
list is the matched string, same as what matchstr() would
return. Following items are submatches, like "\1", "\2", etc.
in |:substitute|.
@@ -3417,20 +3421,20 @@ matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
< results in "ing". >
:echo matchstr("testing", "ing", 5)
< result is "".
- When {expr} is a List then the matching item is returned.
+ When {expr} is a |List| then the matching item is returned.
The type isn't changed, it's not necessarily a String.
*max()*
max({list}) Return the maximum value of all items in {list}.
If {list} is not a list or one of the items in {list} cannot
be used as a Number this results in an error.
- An empty List results in zero.
+ An empty |List| results in zero.
*min()*
min({list}) Return the minumum value of all items in {list}.
If {list} is not a list or one of the items in {list} cannot
be used as a Number this results in an error.
- An empty List results in zero.
+ An empty |List| results in zero.
*mkdir()* *E749*
mkdir({name} [, {path} [, {prot}]])
@@ -3624,7 +3628,7 @@ pumvisible() *pumvisible()*
*E726* *E727*
range({expr} [, {max} [, {stride}]]) *range()*
- Returns a List with Numbers:
+ Returns a |List| with Numbers:
- If only {expr} is specified: [0, 1, ..., {expr} - 1]
- If {max} is specified: [{expr}, {expr} + 1, ..., {max}]
- If {stride} is specified: [{expr}, {expr} + {stride}, ...,
@@ -3643,8 +3647,8 @@ range({expr} [, {max} [, {stride}]]) *range()*
<
*readfile()*
readfile({fname} [, {binary} [, {max}]])
- Read file {fname} and return a List, each line of the file as
- an item. Lines broken at NL characters. Macintosh files
+ Read file {fname} and return a |List|, each line of the file
+ as an item. Lines broken at NL characters. Macintosh files
separated with CR will result in a single long line (unless a
NL appears somewhere).
When {binary} is equal to "b" binary mode is used:
@@ -3748,7 +3752,7 @@ remote_send({server}, {string} [, {idvar}])
\ 'server2client(expand("<client>"), "HELLO")<CR>')
<
remove({list}, {idx} [, {end}]) *remove()*
- Without {end}: Remove the item at {idx} from List {list} and
+ Without {end}: Remove the item at {idx} from |List| {list} and
return it.
With {end}: Remove items from {idx} to {end} (inclusive) and
return a list with these items. When {idx} points to the same
@@ -3777,7 +3781,7 @@ repeat({expr}, {count}) *repeat()*
result. Example: >
:let seperator = repeat('-', 80)
< When {count} is zero or negative the result is empty.
- When {expr} is a List the result is {expr} concatenated
+ When {expr} is a |List| the result is {expr} concatenated
{count} times. Example: >
:let longlist = repeat(['a', 'b'], 3)
< Results in ['a', 'b', 'a', 'b', 'a', 'b'].
@@ -3940,9 +3944,9 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}]])
<
*searchpairpos()*
searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}]])
- Same as searchpair(), but returns a List with the line and
- column position of the match. The first element of the List is
- the line number and the second element is the byte index of
+ Same as searchpair(), but returns a |List| with the line and
+ column position of the match. The first element of the |List|
+ is the line number and the second element is the byte index of
the column position of the match. If no match is found,
returns [0, 0].
>
@@ -3951,11 +3955,11 @@ searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}]])
See |match-parens| for a bigger and more useful example.
searchpos({pattern} [, {flags}]) *searchpos()*
- Same as search(), but returns a List with the line and column
- position of the match. The first element of the List is the
- line number and the second element is the byte index of the
- column position of the match. If no match is found, returns
- [0, 0].
+ Same as search(), but returns a |List| with the line and
+ column position of the match. The first element of the |List|
+ is the line number and the second element is the byte index of
+ the column position of the match. If no match is found,
+ returns [0, 0].
>
:let [lnum,col] = searchpos('mypattern', 'n')
<
@@ -4015,7 +4019,7 @@ setline({lnum}, {line}) *setline()*
If this succeeds, 0 is returned. If this fails (most likely
because {lnum} is invalid) 1 is returned. Example: >
:call setline(5, strftime("%c"))
-< When {line} is a List then line {lnum} and following lines
+< When {line} is a |List| then line {lnum} and following lines
will be set to the items in the list. Example: >
:call setline(5, ['aaa', 'bbb', 'ccc'])
< This is equivalent to: >
@@ -4138,11 +4142,11 @@ sort({list} [, {func}]) *sort()* *E702*
want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
< Uses the string representation of each item to sort on.
- Numbers sort after Strings, Lists after Numbers.
+ Numbers sort after Strings, |List|s after Numbers.
For sorting text in the current buffer use |:sort|.
When {func} is given and it is one then case is ignored.
- When {func} is a Funcref or a function name, this function is
- called to compare items. The function is invoked with two
+ When {func} is a |Funcref| or a function name, this function
+ is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 if
the first one sorts after the second one, -1 if the first one
sorts before the second one. Example: >
@@ -4189,7 +4193,7 @@ spellbadword([{sentence}])
*spellsuggest()*
spellsuggest({word} [, {max} [, {capital}]])
- Return a List with spelling suggestions to replace {word}.
+ Return a |List| with spelling suggestions to replace {word}.
When {max} is given up to this number of suggestions are
returned. Otherwise up to 25 suggestions are returned.
@@ -4212,8 +4216,9 @@ spellsuggest({word} [, {max} [, {capital}]])
split({expr} [, {pattern} [, {keepempty}]]) *split()*
- Make a List out of {expr}. When {pattern} is omitted or empty
- each white-separated sequence of characters becomes an item.
+ Make a |List| out of {expr}. When {pattern} is omitted or
+ empty each white-separated sequence of characters becomes an
+ item.
Otherwise the string is split where {pattern} matches,
removing the matched characters.
When the first or last item is empty it is omitted, unless the
@@ -4454,7 +4459,7 @@ system({expr} [, {input}]) *system()* *E677*
tabpagebuflist([{arg}]) *tabpagebuflist()*
- The result is a List, where each item is the number of the
+ The result is a |List|, where each item is the number of the
buffer associated with each window in the current tab page.
{arg} specifies the number of tab page to be used. When
omitted the current tab page is used.
@@ -4525,8 +4530,8 @@ taglist({expr}) *taglist()*
the tags file generated by the different ctags tools.
*tagfiles()*
-tagfiles() Returns a List with the file names used to search for tags for
- the current buffer. This is the 'tags' option expanded.
+tagfiles() Returns a |List| with the file names used to search for tags
+ for the current buffer. This is the 'tags' option expanded.
tempname() *tempname()* *temp-file-name*
@@ -4581,8 +4586,8 @@ type({expr}) The result is a Number, depending on the type of {expr}:
:if type(myvar) == type({})
values({dict}) *values()*
- Return a List with all the values of {dict}. The List is in
- arbitrary order.
+ Return a |List| with all the values of {dict}. The |List| is
+ in arbitrary order.
virtcol({expr}) *virtcol()*
@@ -4593,6 +4598,8 @@ virtcol({expr}) *virtcol()*
position, the returned Number will be the column at the end of
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
set to 8, it returns 8.
+ For the use of {expr} see |col()|. Additionally you can use
+ [lnum, col]: a |List| with the line and column number.
For the byte position use |col()|.
When Virtual editing is active in the current mode, a position
beyond the end of the line can be returned. |'virtualedit'|
@@ -4688,7 +4695,7 @@ winwidth({nr}) *winwidth()*
<
*writefile()*
writefile({list}, {fname} [, {binary}])
- Write List {list} to file {fname}. Each list item is
+ Write |List| {list} to file {fname}. Each list item is
separated with a NL. Each list item must be a String or
Number.
When {binary} is equal to "b" binary mode is used: There will
@@ -4930,8 +4937,8 @@ instead of "s:" when the mapping is expanded outside of the script.
:fu[nction] List all functions and their arguments.
:fu[nction] {name} List function {name}.
- {name} can also be a Dictionary entry that is a
- Funcref: >
+ {name} can also be a |Dictionary| entry that is a
+ |Funcref|: >
:function dict.init
:fu[nction] /{pattern} List functions with a name matching {pattern}.
@@ -4954,8 +4961,8 @@ See |:verbose-cmd| for more information.
must be made of alphanumeric characters and '_', and
must start with a capital or "s:" (see above).
- {name} can also be a Dictionary entry that is a
- Funcref: >
+ {name} can also be a |Dictionary| entry that is a
+ |Funcref|: >
:function dict.init(arg)
< "dict" must be an existing dictionary. The entry
"init" is added if it didn't exist yet. Otherwise [!]
@@ -4983,7 +4990,7 @@ See |:verbose-cmd| for more information.
abort as soon as an error is detected.
When the [dict] argument is added, the function must
- be invoked through an entry in a Dictionary. The
+ be invoked through an entry in a |Dictionary|. The
local variable "self" will then be set to the
dictionary. See |Dictionary-function|.
@@ -4996,8 +5003,8 @@ See |:verbose-cmd| for more information.
*:delf* *:delfunction* *E130* *E131*
:delf[unction] {name} Delete function {name}.
- {name} can also be a Dictionary entry that is a
- Funcref: >
+ {name} can also be a |Dictionary| entry that is a
+ |Funcref|: >
:delfunc dict.init
< This will remove the "init" entry from "dict". The
function is deleted if there are no more references to
@@ -5026,14 +5033,14 @@ Up to 20 arguments can be given, separated by commas. After the named
arguments an argument "..." can be specified, which means that more arguments
may optionally be following. In the function the extra arguments can be used
as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
-can be 0). "a:000" is set to a List that contains these arguments. Note that
-"a:1" is the same as "a:000[0]".
+can be 0). "a:000" is set to a |List| that contains these arguments. Note
+that "a:1" is the same as "a:000[0]".
*E742*
The a: scope and the variables in it cannot be changed, they are fixed.
-However, if a List or Dictionary is used, you can changes their contents.
-Thus you can pass a List to a function and have the function add an item to
-it. If you want to make sure the function cannot change a List or Dictionary
-use |:lockvar|.
+However, if a |List| or |Dictionary| is used, you can changes their contents.
+Thus you can pass a |List| to a function and have the function add an item to
+it. If you want to make sure the function cannot change a |List| or
+|Dictionary| use |:lockvar|.
When not using "...", the number of arguments in a function call must be equal
to the number of named arguments. When using "...", the number of arguments
@@ -5269,8 +5276,8 @@ This would call the function "my_func_whizz(parameter)".
*E711* *E719*
:let {var-name}[{idx1}:{idx2}] = {expr1} *E708* *E709* *E710*
- Set a sequence of items in a List to the result of the
- expression {expr1}, which must be a list with the
+ Set a sequence of items in a |List| to the result of
+ the expression {expr1}, which must be a list with the
correct number of items.
{idx1} can be omitted, zero is used instead.
{idx2} can be omitted, meaning the end of the list.
@@ -5345,11 +5352,11 @@ This would call the function "my_func_whizz(parameter)".
(if there is one). Works like |:setglobal|.
:let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
- {expr1} must evaluate to a List. The first item in
+ {expr1} must evaluate to a |List|. The first item in
the list is assigned to {name1}, the second item to
{name2}, etc.
The number of names must match the number of items in
- the List.
+ the |List|.
Each name can be one of the items of the ":let"
command as mentioned above.
Example: >
@@ -5367,10 +5374,10 @@ This would call the function "my_func_whizz(parameter)".
:let [{name1}, {name2}, ...] += {expr1}
:let [{name1}, {name2}, ...] -= {expr1}
Like above, but append/add/subtract the value for each
- List item.
+ |List| item.
:let [{name}, ..., ; {lastname}] = {expr1}
- Like |:let-unpack| above, but the List may have more
+ Like |:let-unpack| above, but the |List| may have more
items than there are names. A list of the remaining
items is assigned to {lastname}. If there are no
remaining items {lastname} is set to an empty list.
@@ -5381,7 +5388,7 @@ This would call the function "my_func_whizz(parameter)".
:let [{name}, ..., ; {lastname}] += {expr1}
:let [{name}, ..., ; {lastname}] -= {expr1}
Like above, but append/add/subtract the value for each
- List item.
+ |List| item.
*E106*
:let {var-name} .. List the value of variable {var-name}. Multiple
variable names may be given. Special names recognized
@@ -5401,13 +5408,13 @@ This would call the function "my_func_whizz(parameter)".
:unl[et][!] {name} ... *:unlet* *:unl* *E108*
Remove the internal variable {name}. Several variable
names can be given, they are all removed. The name
- may also be a List or Dictionary item.
+ may also be a |List| or |Dictionary| item.
With [!] no error message is given for non-existing
variables.
- One or more items from a List can be removed: >
+ One or more items from a |List| can be removed: >
:unlet list[3] " remove fourth item
:unlet list[3:] " remove fourth item to last
-< One item from a Dictionary can be removed at a time: >
+< One item from a |Dictionary| can be removed at a time: >
:unlet dict['two']
:unlet dict.two
@@ -5422,28 +5429,30 @@ This would call the function "my_func_whizz(parameter)".
If you try to change a locked variable you get an
error message: "E741: Value of {name} is locked"
- [depth] is relevant when locking a List or Dictionary.
- It specifies how deep the locking goes:
- 1 Lock the List or Dictionary itself,
+ [depth] is relevant when locking a |List| or
+ |Dictionary|. It specifies how deep the locking goes:
+ 1 Lock the |List| or |Dictionary| itself,
cannot add or remove items, but can
still change their values.
2 Also lock the values, cannot change
- the items. If an item is a List or
- Dictionary, cannot add or remove
+ the items. If an item is a |List| or
+ |Dictionary|, cannot add or remove
items, but can still change the
values.
- 3 Like 2 but for the List/Dictionary in
- the List/Dictionary, one level deeper.
- The default [depth] is 2, thus when {name} is a List
- or Dictionary the values cannot be changed.
+ 3 Like 2 but for the |List| /
+ |Dictionary| in the |List| /
+ |Dictionary|, one level deeper.
+ The default [depth] is 2, thus when {name} is a |List|
+ or |Dictionary| the values cannot be changed.
*E743*
For unlimited depth use [!] and omit [depth].
However, there is a maximum depth of 100 to catch
loops.
- Note that when two variables refer to the same List
- and you lock one of them, the List will also be locked
- when used through the other variable. Example: >
+ Note that when two variables refer to the same |List|
+ and you lock one of them, the |List| will also be
+ locked when used through the other variable. Example:
+ >
:let l = [0, 1, 2, 3]
:let cl = l
:lockvar l
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index f7d512553..2bc8af3ba 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.0aa. Last change: 2006 Feb 23
+*index.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1446,11 +1446,14 @@ The commands are sorted on the non-optional part of their name.
|:tabclose| :tabc[lose] close current tab page
|:tabedit| :tabe[dit] edit a file in a new tab page
|:tabfind| :tabf[ind] find file in 'path', edit it in a new tab page
+|:tabfirst| :tabfir[st] got to first tab page
+|:tablast| :tabl[ast] got to last tab page
|:tabmove| :tabm[ove] move tab page to other position
|:tabnew| :tabnew edit a file in a new tab page
|:tabnext| :tabn[ext] go to next tab page
|:tabonly| :tabo[nly] close all tab pages except the current one
|:tabprevious| :tabp[revious] go to previous tab page
+|:tabrewind| :tabr[ewind] got to first tab page
|:tabs| :tabs list the tab pages and what they contain
|:tab| :tab create new tab when opening new window
|:tag| :ta[g] jump to tag
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 440effa6c..67872fb70 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.0aa. Last change: 2006 Feb 10
+*map.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -778,7 +778,7 @@ This does not work if 'cpoptions' includes the '<' flag. |<>|
You can even do more complicated things. For example, to consume the space
typed after an abbreviation: >
func Eatchar(pat)
- let c = nr2char(getchar())
+ let c = nr2char(getchar(0))
return (c =~ a:pat) ? '' : c
endfunc
iabbr <silent> if if ()<Left><C-R>=Eatchar('\s')<CR>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index b8931aee3..122b26d5e 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.0aa. Last change: 2006 Feb 22
+*options.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3249,6 +3249,9 @@ A jump table for the options with a short description can be found at |Q_op|.
'c' Use console dialogs instead of popup dialogs for simple
choices.
+ 'e' Add tab pages when indicated with 'showtabpages'. When 'e' is
+ missing a non-GUI tab pages line may be used.
+
'f' Foreground: Don't use fork() to detach the GUI from the shell
where it was started. Use this for programs that wait for the
editor to finish (e.g., an e-mail program). Alternatively you
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 5f394b398..7469869d8 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt* For Vim version 7.0aa. Last change: 2006 Feb 23
+*tabpage.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -132,6 +132,12 @@ gT Go to the previous tab page. Wraps around from the first one
{count}gT Go {count} tab pages back. Wraps around from the first one
to the last one.
+:tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind*
+:tabl[ast] Go to the first tab page.
+
+ *:tabl* *:tablast*
+:tabl[ast] Go to the last tab page.
+
Other commands:
*:tabs*
@@ -147,6 +153,28 @@ REORDERING TAB PAGES:
make the current tab page the first one. Without N the tab
page is made the last one.
+
+LOOPING OVER TAB PAGES:
+
+ *:tabd* *:tabdo*
+:tabd[o] {cmd} Execute {cmd} in each tab page.
+ It works like doing this: >
+ :tabfirst
+ :{cmd}
+ :tabnext
+ :{cmd}
+ etc.
+< This only operates in the current window of each tab page.
+ When an error is detected on one tab page, further tab pages
+ will not be visited.
+ The last tab page (or where an error occurred) becomes the
+ current tab page.
+ {cmd} can contain '|' to concatenate several commands.
+ {cmd} must not open or close tab pages or reorder them.
+ {not in Vi} {not available when compiled without the
+ |+listcmds| feature}
+ Also see |:windo|, |:argdo| and |:bufdo|.
+
==============================================================================
3. Other items *tab-page-other*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index f35f165ff..e6c2740f0 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt* For Vim version 7.0aa. Last change: 2005 Oct 15
+*tagsrch.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -36,19 +36,26 @@ An easy way back is with the CTRL-T command. Also read about the tag stack
below.
*:ta* *:tag* *E426* *E429*
-:ta[g][!] {ident} Jump to the definition of {ident}, using the
+:[count]ta[g][!] {ident}
+ Jump to the definition of {ident}, using the
information in the tags file(s). Put {ident} in the
tag stack. See |tag-!| for [!].
{ident} can be a regexp pattern, see |tag-regexp|.
- When there are several matching tags for {ident}, the
- first one is jumped to. |:tnext|.
+ When there are several matching tags for {ident}, jump
+ to the [count] one. When [count] is omitted the
+ first one is jumped to. See |tag-matchlist| for
+ jumping to other matching tags.
g<LeftMouse> *g<LeftMouse>*
<C-LeftMouse> *<C-LeftMouse>* *CTRL-]*
CTRL-] Jump to the definition of the keyword under the
cursor. Same as ":tag {ident}", where {ident} is the
- keyword under or after cursor. {Vi: identifier after
- the cursor}
+ keyword under or after cursor.
+ When there are several matching tags for {ident}, jump
+ to the [count] one. When no [count] is given the
+ first one is jumped to. See |tag-matchlist| for
+ jumping to other matching tags.
+ {Vi: identifier after the cursor}
*v_CTRL-]*
{Visual}CTRL-] Same as ":tag {ident}", where {ident} is the text that
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 93a92fd43..89370acdb 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 23
+*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,17 +30,32 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-:tablast
-:tabfirst
-Also support:
- :tabdup split the tab with all its windows.
- :tab ball tab page for each buffer
- :tab all tab page for each argument
- :tabdo cmd ":tabdo windo cmd" should also work
-
-In GUI: right click can popup a menu to close a specific tab.
-Option to put tab line at the left or right? Need an option to specify its
-witdh. It's like a separate window with ":tabs" output.
+Fix for hlsearch getting stuck on multibyte char also in 6.4. reportec by
+Yukihiro Nakadaira.
+
+
+Tab pages:
+- GTK GUI implementation for the tab pages line:
+ /tmp/vim61_tab.patch.bz2
+ Window height can be wrong:
+ :set go-=e
+ resize to fill screen
+ :set go+=e
+ Add 'guitabitem' option?
+- GUI implementation for the tab pages line for other systems.
+8 tab pages in the session file, if "tabpages" in 'sessionoptions'
+7 :tabdup duplicate the tab with all its windows.
+6 :tab ball tab page for each buffer
+6 :tab all tab page for each argument
+7 In GUI: right click can popup a menu to close a specific tab.
+7 Option to put tab line at the left or right? Need an option to specify
+ its witdh. It's like a separate window with ":tabs" output.
+7 Add local variables for each tab page?
+8 Add local options for each tab page? E.g., 'diffopt' could differ between
+ tab pages.
+7 Add local highlighting for a tab page?
+
+Spelling: m'n -> no suggestion for "mijn"?
Add an argument to search functions to stop at a certain line number.
search('{', 'b', line('w0'))
@@ -49,15 +64,6 @@ Also start at a specified position?
undo could remember the '< and '> marks.
-Support WINDOW TABS. Works like several pages, each with their own split
-windows. Let's call them "tab pages".
- - line at top of frame with tabs.
- Add 'tabtext' option, like 'statusline'.
- - Need to be able to search the windows in inactive tabs, e.g. for the
- quickfix window?
- - docs:
- Add info to the user manual somewhere.
-
Crash with X command server (Ciaran McCreesh).
Make virtcol([lnum, col]) work?
@@ -484,16 +490,6 @@ Patch for "paranoid mode" by Kevin Collins, March 7. Needs much more work.
Check if file explorer can handle directory names and links with a single
quote. (Nieko Maatjes, 2005 Jan 4)
-Future enhancements for tab pages:
- - Add GUI Tabs for all systems.
- Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6.
- Simple patch for GTK by Luis M (nov 7).
- - ":tabsplit" makes a copy of the current tab page.
- - Add local variables for each tab page?
- - Add local options for each tab page? E.g., 'diffopt' could differ
- between tab pages.
- - Add local highlighting for a tab page?
-
Vi incompatibility:
8 With undo/redo only marks in the changed lines should be changed. Other
@@ -2074,7 +2070,6 @@ Tags:
7 Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
number of possible matches? Check tags file for an item that has members.
(Flemming Madsen)
-7 Count before CTRL-]: jump to N'th match
8 Scope arguments for ":tag", e.g.: ":tag class:cPage open", like Elvis.
8 When output of ":tselect" is long, getting the more-prompt, should be able
to type the tag number directly.
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index cee90dca3..c4212ef10 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt* For Vim version 7.0aa. Last change: 2005 Apr 01
+*usr_08.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM USER MANUAL - by Bram Moolenaar
@@ -17,6 +17,7 @@ side by side. All this is possible with split windows.
|08.6| Commands for all windows
|08.7| Viewing differences with vimdiff
|08.8| Various
+|08.9| Tab pages
Next chapter: |usr_09.txt| Using the GUI
Previous chapter: |usr_07.txt| Editing more than one file
@@ -504,6 +505,95 @@ window is to appear:
:topleft {cmd} at the top or left of the Vim window
:botright {cmd} at the bottom or right of the Vim window
+
+==============================================================================
+*08.9* Tab pages
+
+You will have noticed that windows never overlap. That means you quickly run
+out of screen space. The solution for this is called Tab pages.
+
+Assume you are editing "thisfile". To create a new tab page use this command: >
+
+ :tabedit thatfile
+
+This will edit the file "thatfile" in a window that occupies the whole Vim
+window. And you will notice a bar at the top with the two file names:
+
+ +----------------------------------+
+ |_thisfile_| thatfile ____________X|
+ |/* thatfile */ |
+ |that |
+ |that |
+ |~ |
+ |~ |
+ |~ |
+ | |
+ +----------------------------------+
+
+You now have two tab pages. The first one has a window for "thisfile" and the
+second one a window for "thatfile". It's like two pages that are on top of
+eachother, with a tab sticking out of each page showing the file name.
+
+Now use the mouse to click on "thisfile" in the top line. The result is
+
+ +----------------------------------+
+ | thisfile |_thatfile_____________X|
+ |/* thisfile */ |
+ |this |
+ |this |
+ |~ |
+ |~ |
+ |~ |
+ | |
+ +----------------------------------+
+
+Thus you can switch between tab pages by clicking on the label in the top
+line. If you don't have a mouse or don't want to use it, you can use the "gt"
+command. Mnemonic: Goto Tab.
+
+Now let's create another tab page with the command: >
+
+ :tab split
+
+This makes a new tab page with one window that is editing the same buffer as
+the window we were in:
+
+ +-------------------------------------+
+ |_thisfile_| thisfile | _thatfile____X|
+ |/* thisfile */ |
+ |this |
+ |this |
+ |~ |
+ |~ |
+ |~ |
+ | |
+ +-------------------------------------+
+
+You can put ":tab" before any Ex command that opens a window. The window will
+be opened in a new tab page. Another example: >
+
+ :tab help gt
+
+Will show the help text for "gt" in a new tab page.
+
+A few more things you can do with tab pages:
+
+- click with the mouse in the space after the last label
+ The next tab page will be selected, like with "gt".
+
+- click with the mouse on the "X" in the top right corner
+ The current tab page will be closed. Unless there are unsaved
+ changes in the current tab page.
+
+- double click with the mouse in the top line
+ A new tab page will be created.
+
+- the "tabonly" command
+ Closes all tab pages except the current one. Unless there are unsaved
+ changes in other tab pages.
+
+For more information about tab pages see |tab-page|.
+
==============================================================================
Next chapter: |usr_09.txt| Using the GUI
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 6da26a0f9..465c02c44 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt* For Vim version 7.0aa. Last change: 2006 Feb 23
+*version7.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1038,6 +1038,10 @@ made empty to avoid an endless redraw loop. Also for other options, such at
'tabline'. ":verbose set statusline" will mention that it was set in an error
handler.
+When there are several matching tags, the ":tag <name>" and CTRL-] commands
+jump to the [count] matching tag. (Yegappan Lakshmanan)
+
+
==============================================================================
COMPILE TIME CHANGES *compile-changes-7*
@@ -1740,4 +1744,9 @@ For a color terminal: When the Normal HL uses bold, possibly to make the color
lighter, and another HL group specifies a color it might become light as well.
Now reset bold if a HL group doesn't specify bold itself.
+When using 256 color xterm the color 255 would show up as color 0. Use a
+short instead of a char to store the color number.
+
+ml_get errors when searching for "\n\zs" in an empty file.
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index cd57287f3..060408abb 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt* For Vim version 7.0aa. Last change: 2006 Feb 23
+*windows.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -629,7 +629,7 @@ can also get to them with the buffer list commands, like ":bnext".
CTRL-W w
:{cmd}
etc.
-< This only works in the current tab page.
+< This only operates in the current tab page.
When an error is detected on one window, further
windows will not be visited.
The last window (or where an error occurred) becomes
@@ -638,7 +638,7 @@ can also get to them with the buffer list commands, like ":bnext".
{cmd} must not open or close windows or reorder them.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
- Also see |:argdo| and |:bufdo|.
+ Also see |:tabdo|, |:argdo| and |:bufdo|.
*:bufdo*
:bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list.
@@ -664,7 +664,7 @@ can also get to them with the buffer list commands, like ":bnext".
each buffer.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
- Also see |:argdo| and |:windo|.
+ Also see |:tabdo|, |:argdo| and |:windo|.
Examples: >