This is not exhaustive or anything, just a memo.
's' means substitute. While it may also mean "search", the search command is usually a slash /, as in/searchabletext
The simple of it:
:s/whatimlookingfor/whatshouldreplaceit
The slash separates the command, the searchable item, the replaceable item, and additional parameters.
To replace stuff throughout the whole file (or document), use the percent
% sign before
s:
:%s/whatimlookingfor/whatshouldreplaceit
:s/\&,/^M/g
This
replaces commas across one (long or large) line with a newline (carriage return). Breakdown:
s/ — starts the substitute command
after slash, enter search string
\& — all occurrences of desired search string within a line
, — comma is what one is looking for
/ — the next slash separates the search string from the replacement
^M — newline (carriage return). in gVIM (for Windows), it's highlighted, as it's actually entered as
<Ctrl+V> <enter>
/g — replace till the end of line. Useful for if there's a huge amount of text in one line.
If one wants carriage returns
after a comma, use this:
:s/\&,/&^M/g
— where the usually coloured (and special) carriage return symbol
^M follows the ampersand
&. The ampersand is used to to add text: stuff
before it is added
before the searchable string; stuff added
after the ampersand means that instead of deleting, stuff is added
after the searchable string.
Convenient.
:s/\&"\;/"/g
Here it replaces all
" with normal quote characters
"
\& — all occurrences of search string within a line;
"\; note that the semicolon is escaped.
:s/\&description="/&\t
\& — search in a line all instances of
description="
/
&\t — As stated above, the ampersand & is used to add stuff; in this instance, a tab
\t is added after the searchable string.
Turn highlight off
Like this
:nohlsearch
^ Given that all searchable strings found are highlighted. But then it becomes somewhat annoying when proceeding to edit text after things are done. Instructions from the
Vim wikia.
Or:
:noh
16.04.2018:
Search for strings not containing a character (search with exclusions)
Search for a line not containing dots (periods):
/^[^\.]*$
Breakdown:
/ — starts a search
^ — start of a line
[^stuff_to_be_excluded] — exclusion [^inside square brackets, starting with caron]
[^\.] — the dot is escaped with a backslash \
* — wildcard for
everything
$ — end of a line
Pressing enter/return will get you to the nearest match (if any), and highlight other matches. Move to the next match with the
n key.