updated for version 7.0075
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 85271b1..0164054 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt* For Vim version 7.0aa. Last change: 2005 Apr 26
+*change.txt* For Vim version 7.0aa. Last change: 2005 May 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -19,6 +19,7 @@
4.4 Changing tabs |change-tabs|
5. Copying and moving text |copy-move|
6. Formatting text |formatting|
+7. Sorting text |sorting|
For inserting text see |insert.txt|.
@@ -1479,5 +1480,34 @@
- Formatting a long paragraph and/or with complicated indenting may be slow.
+==============================================================================
+7. Sorting text *sorting*
+
+Vim has a sorting function and a sorting command. The sorting function can be
+found here: |sort()|.
+
+ *:sor* *:sort*
+:[range]sor[t][!] [i] [u] [/{pattern}/]
+ Sort lines in [range].
+
+ With [!] the order is reversed.
+
+ With [i] case is ignored.
+
+ With [u] only keep the first of a sequence of
+ identical lines (ignoring case when [i] is used).
+
+ When /{pattern}/ is specified the text matched with
+ {pattern} is skipped, so that you sort on what comes
+ after the match. For lines without a match sorting
+ starts in the first column (e.g., for empty lines).
+ Instead of the slash any non-letter can be used.
+ For example, to sort on the second comma-separated
+ field: >
+ :sort /[^,]*,/
+< To sort on the text at virtual column 10 (thus
+ ignoring the difference between tabs and spaces): >
+ :sort /.*\%10v/
+<
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 159f17f..9c3f0af 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2005 May 18
+*eval.txt* For Vim version 7.0aa. Last change: 2005 May 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1497,7 +1497,7 @@
getline( {lnum}) String line {lnum} of current buffer
getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer
getqflist() List list of quickfix items
-getreg( [{regname}]) String contents of register
+getreg( [{regname} [, 1]]) String contents of register
getregtype( [{regname}]) String type of register
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
@@ -1587,7 +1587,8 @@
setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val}
simplify( {filename}) String simplify filename as much as possible
sort( {list} [, {func}]) List sort {list}, using {func} to compare
-split( {expr} [, {pat}]) List make List from {pat} separated {expr}
+split( {expr} [, {pat} [, {keepempty}]])
+ 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}
@@ -2558,12 +2559,15 @@
:endfor
-getreg([{regname}]) *getreg()*
+getreg([{regname} [, 1]]) *getreg()*
The result is a String, which is the contents of register
{regname}. Example: >
:let cliptext = getreg('*')
< getreg('=') returns the last evaluated value of the expression
register. (For use in maps.)
+ getreg('=', 1) returns the expression itself, so that it can
+ be restored with |setreg()|. For other registers the extra
+ argument is ignored, thus you can always give it.
If {regname} is not specified, |v:register| is used.
@@ -2577,7 +2581,6 @@
<CTRL-V> is one character with value 0x16.
If {regname} is not specified, |v:register| is used.
-
*getwinposx()*
getwinposx() The result is a Number, which is the X coordinate in pixels of
the left hand side of the GUI Vim window. The result will be
@@ -3598,9 +3601,18 @@
setline({lnum}, {line}) *setline()*
Set line {lnum} of the current buffer to {line}.
{lnum} is used like with |getline()|.
+ When {lnum} is just below the last line the {line} will be
+ added as a new line.
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
+ will be set to the items in the list. Example: >
+ :call setline(5, ['aaa', 'bbb', 'ccc'])
+< This is equivalent to: >
+ :for [n, l] in [[5, 6, 7], ['aaa', 'bbb', 'ccc']]
+ : call setline(n, l)
+ :endfor
< Note: The '[ and '] marks are not set.
@@ -3669,7 +3681,7 @@
< This example shows using the functions to save and restore a
register. >
- :let var_a = getreg('a')
+ :let var_a = getreg('a', 1)
:let var_amode = getregtype('a')
....
:call setreg('a', var_a, var_amode)
@@ -3712,6 +3724,7 @@
:let sortedlist = sort(copy(mylist))
< Uses the string representation of each item to sort on.
Numbers sort after Strings, Lists 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
@@ -3723,21 +3736,23 @@
endfunc
let sortedlist = sort(mylist, "MyCompare")
-split({expr} [, {pattern}]) *split()*
- Make a List out of {expr}. When {pattern} is omitted each
- white-separated sequence of characters becomes an item.
+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.
Otherwise the string is split where {pattern} matches,
- removing the matched characters. Empty strings are omitted.
+ removing the matched characters.
+ When the first or last item is empty it is omitted, unless the
+ {keepempty} argument is given and it's non-zero.
Example: >
:let words = split(getline('.'), '\W\+')
-< Since empty strings are not added the "\+" isn't required but
- it makes the function work a bit faster.
- To split a string in individual characters: >
+< To split a string in individual characters: >
:for c in split(mystring, '\zs')
< If you want to keep the separator you can also use '\zs': >
:echo split('abc:def:ghi', ':\zs')
< ['abc:', 'def:', 'ghi'] ~
- The opposite function is |join()|.
+ Splitting a table where the first element can be empty: >
+ :let items = split(line, ':', 1)
+< The opposite function is |join()|.
strftime({format} [, {time}]) *strftime()*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8c7fb1c..9112132 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2397,6 +2397,8 @@
:sno change.txt /*:sno*
:snomagic change.txt /*:snomagic*
:so repeat.txt /*:so*
+:sor change.txt /*:sor*
+:sort change.txt /*:sort*
:source repeat.txt /*:source*
:source_crnl repeat.txt /*:source_crnl*
:sp windows.txt /*:sp*
@@ -5117,6 +5119,7 @@
hebrew.txt hebrew.txt /*hebrew.txt*
help various.txt /*help*
help-context help.txt /*help-context*
+help-tags tags 1
help-translated various.txt /*help-translated*
help-xterm-window various.txt /*help-xterm-window*
help.txt help.txt /*help.txt*
@@ -5639,6 +5642,7 @@
mzscheme-buffer if_mzsch.txt /*mzscheme-buffer*
mzscheme-commands if_mzsch.txt /*mzscheme-commands*
mzscheme-examples if_mzsch.txt /*mzscheme-examples*
+mzscheme-sandbox if_mzsch.txt /*mzscheme-sandbox*
mzscheme-threads if_mzsch.txt /*mzscheme-threads*
mzscheme-vim if_mzsch.txt /*mzscheme-vim*
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
@@ -6225,6 +6229,7 @@
sniff-compiling if_sniff.txt /*sniff-compiling*
sniff-intro if_sniff.txt /*sniff-intro*
sort() eval.txt /*sort()*
+sorting change.txt /*sorting*
space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing*
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*