This is not exhaustive or anything, just a memo.The simple of it:
's' means substitute. While it may also mean "search", the search command is usually a slash/
, as in/searchabletext
: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 commandafter 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 ofdescription="
/
&\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 linePressing enter/return will get you to the nearest match (if any), and highlight other matches. Move to the next match with the
n
key.
No comments:
Post a Comment