Mercurial > vim
diff runtime/doc/pattern.txt @ 16553:0e473e9e70c2 v8.1.1280
patch 8.1.1280: remarks about functionality not in Vi clutters the help
commit https://github.com/vim/vim/commit/25c9c680ec4dfbb51f4ef21c3460a48d3c67ffc8
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 5 18:13:34 2019 +0200
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Problem: Remarks about functionality not in Vi clutters the help.
Solution: Move all info about what is new in Vim or already existed in Vi to
vi_diff.txt. Remove {not in Vi} remarks. (closes #4268) Add
"noet" to the help files modeline. Also include many other help
file improvements.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 05 May 2019 18:15:06 +0200 |
parents | 5e25171e0e75 |
children | c002c4899529 |
line wrap: on
line diff
--- a/runtime/doc/pattern.txt +++ b/runtime/doc/pattern.txt @@ -1,4 +1,4 @@ -*pattern.txt* For Vim version 8.1. Last change: 2019 Feb 21 +*pattern.txt* For Vim version 8.1. Last change: 2019 May 05 VIM REFERENCE MANUAL by Bram Moolenaar @@ -78,24 +78,24 @@ N Repeat the latest "/" or "?" [count] 4. the first non-blank word after the cursor, in the current line Only whole keywords are searched for, like with the - command "/\<keyword\>". |exclusive| {not in Vi} + command "/\<keyword\>". |exclusive| 'ignorecase' is used, 'smartcase' is not. *#* # Same as "*", but search backward. The pound sign (character 163) also works. If the "#" key works as backspace, try using "stty erase <BS>" before starting - Vim (<BS> is CTRL-H or a real backspace). {not in Vi} + Vim (<BS> is CTRL-H or a real backspace). *gstar* g* Like "*", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a - whole word. {not in Vi} + whole word. *g#* g# Like "#", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a - whole word. {not in Vi} + whole word. *gd* gd Goto local Declaration. When the cursor is on a local @@ -113,22 +113,21 @@ gd Goto local Declaration. When the c searched use the commands listed in |include-search|. After this command |n| searches forward for the next match (not backward). - {not in Vi} *gD* gD Goto global Declaration. When the cursor is on a global variable that is defined in the file, this command will jump to its declaration. This works just like "gd", except that the search for the keyword - always starts in line 1. {not in Vi} + always starts in line 1. *1gd* 1gd Like "gd", but ignore matches inside a {} block that - ends before the cursor position. {not in Vi} + ends before the cursor position. *1gD* 1gD Like "gD", but ignore matches inside a {} block that - ends before the cursor position. {not in Vi} + ends before the cursor position. *CTRL-C* CTRL-C Interrupt current (search) command. Use CTRL-Break on @@ -171,7 +170,7 @@ error message |:s_flags|. *search-offset* *{offset}* These commands search for the specified pattern. With "/" and "?" an additional offset may be given. There are two types of offsets: line offsets -and character offsets. {the character offsets are not in Vi} +and character offsets. The offset gives the cursor position relative to the found match: [num] [num] lines downwards, in column 1 @@ -312,14 +311,6 @@ triggered. In most cases this should be it's used again it fails. Usually this means there is something wrong with the pattern. - *E956* -In very rare cases a regular expression is used recursively. This can happen -when executing a pattern takes a long time and when checking for messages on -channels a callback is invoked that also uses a pattern or an autocommand is -triggered. In most cases this should be fine, but if a pattern is in use when -it's used again it fails. Usually this means there is something wrong with -the pattern. - ============================================================================== 2. The definition of a pattern *search-pattern* *pattern* *[pattern]* *regular-expression* *regexp* *Pattern* @@ -455,30 +446,28 @@ More explanation and examples below, fol multi ~ 'magic' 'nomagic' matches of the preceding atom ~ |/star| * \* 0 or more as many as possible -|/\+| \+ \+ 1 or more as many as possible (*) -|/\=| \= \= 0 or 1 as many as possible (*) -|/\?| \? \? 0 or 1 as many as possible (*) +|/\+| \+ \+ 1 or more as many as possible +|/\=| \= \= 0 or 1 as many as possible +|/\?| \? \? 0 or 1 as many as possible -|/\{| \{n,m} \{n,m} n to m as many as possible (*) - \{n} \{n} n exactly (*) - \{n,} \{n,} at least n as many as possible (*) - \{,m} \{,m} 0 to m as many as possible (*) - \{} \{} 0 or more as many as possible (same as *) (*) +|/\{| \{n,m} \{n,m} n to m as many as possible + \{n} \{n} n exactly + \{n,} \{n,} at least n as many as possible + \{,m} \{,m} 0 to m as many as possible + \{} \{} 0 or more as many as possible (same as *) -|/\{-| \{-n,m} \{-n,m} n to m as few as possible (*) - \{-n} \{-n} n exactly (*) - \{-n,} \{-n,} at least n as few as possible (*) - \{-,m} \{-,m} 0 to m as few as possible (*) - \{-} \{-} 0 or more as few as possible (*) +|/\{-| \{-n,m} \{-n,m} n to m as few as possible + \{-n} \{-n} n exactly + \{-n,} \{-n,} at least n as few as possible + \{-,m} \{-,m} 0 to m as few as possible + \{-} \{-} 0 or more as few as possible *E59* -|/\@>| \@> \@> 1, like matching a whole pattern (*) -|/\@=| \@= \@= nothing, requires a match |/zero-width| (*) -|/\@!| \@! \@! nothing, requires NO match |/zero-width| (*) -|/\@<=| \@<= \@<= nothing, requires a match behind |/zero-width| (*) -|/\@<!| \@<! \@<! nothing, requires NO match behind |/zero-width| (*) - -(*) {not in Vi} +|/\@>| \@> \@> 1, like matching a whole pattern +|/\@=| \@= \@= nothing, requires a match |/zero-width| +|/\@!| \@! \@! nothing, requires NO match |/zero-width| +|/\@<=| \@<= \@<= nothing, requires a match behind |/zero-width| +|/\@<!| \@<! \@<! nothing, requires NO match behind |/zero-width| Overview of ordinary atoms. */ordinary-atom* @@ -507,7 +496,7 @@ More explanation and examples below, fol |/\%c| \%23c \%23c in column 23 |/zero-width| |/\%v| \%23v \%23v in virtual column 23 |/zero-width| -Character classes {not in Vi}: */character-classes* +Character classes: */character-classes* magic nomagic matches ~ |/\i| \i \i identifier character (see 'isident' option) |/\I| \I \I like "\i", but excluding digits @@ -546,7 +535,7 @@ Character classes {not in Vi}: */char |/\b| \b \b <BS> |/\n| \n \n end-of-line |/~| ~ \~ last given substitute string -|/\1| \1 \1 same string as matched by first \(\) {not in Vi} +|/\1| \1 \1 same string as matched by first \(\) |/\2| \2 \2 Like "\1", but uses second \(\) ... |/\9| \9 \9 Like "\1", but uses ninth \(\) @@ -624,20 +613,19 @@ overview. character at a time. */\+* -\+ Matches 1 or more of the preceding atom, as many as possible. {not in - Vi} +\+ Matches 1 or more of the preceding atom, as many as possible. Example matches ~ ^.\+$ any non-empty line \s\+ white space of at least one character */\=* -\= Matches 0 or 1 of the preceding atom, as many as possible. {not in Vi} +\= Matches 0 or 1 of the preceding atom, as many as possible. Example matches ~ foo\= "fo" and "foo" */\?* \? Just like \=. Cannot be used when searching backwards with the "?" - command. {not in Vi} + command. */\{* *E60* *E554* *E870* \{n,m} Matches n to m of the preceding atom, as many as possible @@ -651,7 +639,6 @@ overview. \{-n,} matches at least n of the preceding atom, as few as possible \{-,m} matches 0 to m of the preceding atom, as few as possible \{-} matches 0 or more of the preceding atom, as few as possible - {Vi does not have any of these} n and m are positive decimal numbers or zero *non-greedy* @@ -674,7 +661,7 @@ overview. The } may optionally be preceded with a backslash: \{n,m\}. */\@=* -\@= Matches the preceding atom with zero width. {not in Vi} +\@= Matches the preceding atom with zero width. Like "(?=pattern)" in Perl. Example matches ~ foo\(bar\)\@= "foo" in "foobar" @@ -694,7 +681,7 @@ overview. */\@!* \@! Matches with zero width if the preceding atom does NOT match at the - current position. |/zero-width| {not in Vi} + current position. |/zero-width| Like "(?!pattern)" in Perl. Example matches ~ foo\(bar\)\@! any "foo" not followed by "bar" @@ -724,7 +711,7 @@ overview. */\@<=* \@<= Matches with zero width if the preceding atom matches just before what - follows. |/zero-width| {not in Vi} + follows. |/zero-width| Like "(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns. Example matches ~ \(an\_s\+\)\@<=file "file" after "an" and white space or an @@ -768,7 +755,7 @@ overview. \@<! Matches with zero width if the preceding atom does NOT match just before what follows. Thus this matches if there is no position in the current or previous line where the atom matches such that it ends just - before what follows. |/zero-width| {not in Vi} + before what follows. |/zero-width| Like "(?<!pattern)" in Perl, but Vim allows non-fixed-width patterns. The match with the preceding atom is made to end just before the match with what follows, thus an atom that ends in ".*" will work. @@ -784,7 +771,7 @@ overview. slow. */\@>* -\@> Matches the preceding atom like matching a whole pattern. {not in Vi} +\@> Matches the preceding atom like matching a whole pattern. Like "(?>pattern)" in Perl. Example matches ~ \(a*\)\@>a nothing (the "a*" takes all the "a"'s, there can't be @@ -863,7 +850,7 @@ An ordinary atom can be: /\(.\{-}\zsFab\)\{3} < Finds the third occurrence of "Fab". This cannot be followed by a multi. *E888* - {not in Vi} {not available when compiled without the |+syntax| feature} + {not available when compiled without the |+syntax| feature} */\ze* \ze Matches at any position, and sets the end of the match there: The previous char is the last char of the whole match. |/zero-width| @@ -872,17 +859,17 @@ An ordinary atom can be: Example: "end\ze\(if\|for\)" matches the "end" in "endif" and "endfor". This cannot be followed by a multi. |E888| - {not in Vi} {not available when compiled without the |+syntax| feature} + {not available when compiled without the |+syntax| feature} */\%^* *start-of-file* \%^ Matches start of the file. When matching with a string, matches the - start of the string. {not in Vi} + start of the string. For example, to find the first "VIM" in a file: > /\%^\_.\{-}\zsVIM < */\%$* *end-of-file* \%$ Matches end of the file. When matching with a string, matches the - end of the string. {not in Vi} + end of the string. Note that this does NOT find the last "VIM" in a file: > /VIM\_.\{-}\%$ < It will find the next VIM, because the part after it will always @@ -906,7 +893,7 @@ An ordinary atom can be: */\%#* *cursor-position* \%# Matches with the cursor position. Only works when matching in a - buffer displayed in a window. {not in Vi} + buffer displayed in a window. WARNING: When the cursor is moved after the pattern was used, the result becomes invalid. Vim doesn't automatically update the matches. This is especially relevant for syntax highlighting and 'hlsearch'. @@ -927,7 +914,6 @@ An ordinary atom can be: < Note that two dots are required to include mark 'e in the match. That is because "\%<'e" matches at the character before the 'e mark, and since it's a |/zero-width| match it doesn't include that character. - {not in Vi} WARNING: When the mark is moved after the pattern was used, the result becomes invalid. Vim doesn't automatically update the matches. Similar to moving the cursor for "\%#" |/\%#|. @@ -937,7 +923,7 @@ An ordinary atom can be: \%<23l Matches above a specific line (lower line number). \%>23l Matches below a specific line (higher line number). These three can be used to match specific lines in a buffer. The "23" - can be any line number. The first line is 1. {not in Vi} + can be any line number. The first line is 1. WARNING: When inserting or deleting lines Vim does not automatically update the matches. This means Syntax highlighting quickly becomes wrong. @@ -953,7 +939,7 @@ An ordinary atom can be: These three can be used to match specific columns in a buffer or string. The "23" can be any column number. The first column is 1. Actually, the column is the byte number (thus it's not exactly right - for multi-byte characters). {not in Vi} + for multi-byte characters). WARNING: When inserting or deleting text Vim does not automatically update the matches. This means Syntax highlighting quickly becomes wrong. @@ -975,7 +961,7 @@ An ordinary atom can be: The "23" can be any column number. The first column is 1. Note that some virtual column positions will never match, because they are halfway through a tab or other character that occupies more than - one screen character. {not in Vi} + one screen character. WARNING: When inserting or deleting text Vim does not automatically update highlighted matches. This means Syntax highlighting quickly becomes wrong. @@ -998,7 +984,7 @@ An ordinary atom can be: where ".*" matches zero characters. < -Character classes: {not in Vi} +Character classes: \i identifier character (see 'isident' option) */\i* \I like "\i", but excluding digits */\I* \k keyword character (see 'iskeyword' option) */\k* @@ -1058,7 +1044,7 @@ match ASCII characters, as indicated by *E51* *E54* *E55* *E872* *E873* \1 Matches the same string that was matched by */\1* *E65* - the first sub-expression in \( and \). {not in Vi} + the first sub-expression in \( and \). Example: "\([a-z]\).\1" matches "ata", "ehe", "tot", etc. \2 Like "\1", but uses second sub-expression, */\2* ... */\3* @@ -1070,7 +1056,6 @@ match ASCII characters, as indicated by \%(\) A pattern enclosed by escaped parentheses. */\%(\)* */\%(* *E53* Just like \(\), but without counting it as a sub-expression. This allows using more groups and it's a little bit faster. - {not in Vi} x A single character, with no special meaning, matches itself @@ -1171,7 +1156,7 @@ x A single character, with no special me backslash before it: "[xyz\]]", "[\^xyz]", "[xy\-z]" and "[xyz\\]". (Note: POSIX does not support the use of a backslash this way). For ']' you can also make it the first character (following a possible - "^"): "[]xyz]" or "[^]xyz]" {not in Vi}. + "^"): "[]xyz]" or "[^]xyz]". For '-' you can also make it the first or last character: "[-xyz]", "[^-xyz]" or "[xyz-]". For '\' you can also let it be followed by any character that's not in "^]-\bdertnoUux". "[\xyz]" matches '\', @@ -1180,7 +1165,7 @@ x A single character, with no special me - Omitting the trailing ] is not considered an error. "[]" works like "[]]", it matches the ']' character. - The following translations are accepted when the 'l' flag is not - included in 'cpoptions' {not in Vi}: + included in 'cpoptions': \e <Esc> \t <Tab> \r <CR> (NOT end-of-line!) @@ -1261,7 +1246,7 @@ files. To match a <Nul> with a search p "CTRL-V 000". This is probably just what you expect. Internally the character is replaced with a <NL> in the search pattern. What is unusual is that typing CTRL-V CTRL-J also inserts a <NL>, thus also searches for a <Nul> -in the file. {Vi cannot handle <Nul> characters in the file at all} +in the file. *CR-used-for-NL* When 'fileformat' is "mac", <NL> characters in the file are stored as <CR>