diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-04-02 19:00:58 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-04-02 19:00:58 +0200 |
commit | 41571769c9a236fd07b333a5eb98c461636b466c (patch) | |
tree | ec1ea68205a7a81587973c381cfe55f4188924d1 /runtime/doc/eval.txt | |
parent | fe5aab63feb2b03656700d3738d46a19e99edde0 (diff) | |
download | vim-41571769c9a236fd07b333a5eb98c461636b466c.zip |
updated for version 7.4.241
Problem: The string returned by submatch() does not distinguish between a
NL from a line break and a NL that stands for a NUL character.
Solution: Add a second argument to return a list. (ZyX)
Diffstat (limited to 'runtime/doc/eval.txt')
-rw-r--r-- | runtime/doc/eval.txt | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 007c7f746..cdf8d72bb 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1990,7 +1990,8 @@ strridx( {haystack}, {needle} [, {start}]) Number last index of {needle} in {haystack} strtrans( {expr}) String translate string to make it printable strwidth( {expr}) Number display cell length of the String {expr} -submatch( {nr}) String specific match in ":s" or substitute() +submatch( {nr}[, {list}]) String or List + specific match in ":s" or substitute() substitute( {expr}, {pat}, {sub}, {flags}) String all {pat} in {expr} replaced with {sub} synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col} @@ -5797,12 +5798,23 @@ strwidth({expr}) *strwidth()* Ambiguous, this function's return value depends on 'ambiwidth'. Also see |strlen()|, |strdisplaywidth()| and |strchars()|. -submatch({nr}) *submatch()* +submatch({nr}[, {list}]) *submatch()* Only for an expression in a |:substitute| command or substitute() function. Returns the {nr}'th submatch of the matched text. When {nr} is 0 the whole matched text is returned. + Note that a NL in the string can stand for a line break of a + multi-line match or a NUL character in the text. Also see |sub-replace-expression|. + + If {list} is present and non-zero then submatch() returns + a list of strings, similar to |getline()| with two arguments. + NL characters in the text represent NUL characters in the + text. + Only returns more than one item for |:substitute|, inside + |substitute()| this list will always contain one or zero + items, since there are no real line breaks. + Example: > :s/\d\+/\=submatch(0) + 1/ < This finds the first number in the line and adds one to it. |