:range s[ubstitute]/pattern/string/cgiI
The command for each line in the range replaces a match of the pattern with the string.
Where range can be:
| number | an absolute line number |
| . | the current line |
| $ | the last line in the file |
| % | the whole file. The same as 1,$ |
| 't | position of mark "t" |
| /pattern[/] | the next line where text "pattern" matches. |
| ?pattern[?] | the previous line where text "pattern" matches |
| \/ | the next line where the previously used search pattern matches ("\" "/") |
| \? | the previous line where the previously used search pattern matches |
| \& | the next line where the previously used substitute pattern matches |
Please note:
- You can mark your current position in the text by typing "mt", where "t" can be any letter, and use it as a mark later defining the line address.
- If no line range is specified the command will operate on the current line only.
Anchors:
| \<> | Word boundary de-limiters |
| ^ | Beginning of the line |
| $ | End of the line |
Metacharacters:
| . | any character except new line | ||
| \s | whitespace character | \S | non-whitespace character |
| \d | digit | \D | non-digit |
| \x | hex digit | \X | non-hex digit |
| \o | octal digit | \O | non-octal digit |
| \h | head of word character (a,b,c...z,A,B,C...Z and _) | \H | non-head of word character |
| \p | printable character | \P | like \p, but excluding digits |
| \w | word character | \W | non-word character |
| \a | alphabetic character | \A | non-alphabetic character |
| \l | lowercase character | \L | non-lowercase character |
| \u | uppercase character | \U | non-uppercase character |
Quantifiers may be greedy or non-greedy.
Here are the greedy ones: (here n and m are positive integers)
| * | matches 0 or more of the preceding characters, ranges or metacharacters .* matches everything including empty line |
| \+ | matches 1 or more of the preceding characters... |
| \= | matches 0 or 1 more of the preceding characters... |
| \{n,m} | matches from n to m of the preceding characters... |
| \{n} | matches exactly n times of the preceding characters... |
| \{,m} | matches at most m (from 0 to m) of the preceding characters... |
| \{n,} | matches at least n of of the preceding characters... |
and here are the non-greedy quantifiers:
| \{-} | matches 0 or more of the preceding atom, as few as possible |
| \{-n,m} | matches 1 or more of the preceding characters... |
| \{-n,} | matches at least 1 or more of the preceding characters... |
| \{-,m} | matches 1 or more of the preceding characters... |
Finally the "search and replace command" may be followed by:
| c | Confirm each substitution |
| g | Replace all occurrences in the line (without g - only first). |
| i | Ignore case for the pattern. |
| I | Don't ignore case for the pattern. |
This is just an extract from:
http://larc.ee.nthu.edu.tw/~cthuang/vim/files/vim-regex/vim-regex.htm
For detailed usage visit the link.
No comments:
Post a Comment