viper: Changing Text
4.2.6 Changing Text
-------------------
‘<count> r<char>’
Replace <count> chars by <char>; no <esc>.
‘<count> R’
Overwrite the rest of the line, appending change COUNT − 1 times.
‘<count> s’
Substitute <count> chars.
‘<count> S’
Change <count> lines.
‘<count> c<move>’
Change from begin to endpoint of <count><move>.
‘<count> cc’
Change <count> lines.
‘<count> C’
The rest of the line and <count> − 1 next lines.
‘<count> =<move>’
Reindent the region described by move.
‘<count> ~’
Switch lower and upper cases.
‘<count> J’
Join <count> lines (default 2).
‘:[x,y]s/<pat>/<repl>/<f>’
Substitute (on lines x through y) the pattern <pat> (default the
last pattern) with <repl>. Useful flags <f> are ‘g’ for ‘global’
(i.e., change every non-overlapping occurrence of <pat>) and ‘c’
for ‘confirm’ (type ‘y’ to confirm a particular substitution, else
‘n’ ). Instead of ‘/’ any punctuation CHAR unequal to <space>
<tab> and <lf> can be used as delimiter.
In Emacs, ‘\&’ stands for the last matched expression, so
‘s/[ab]+/\&\&/’ will double the string matched by ‘[ab]’. Viper
doesn’t treat ‘&’ specially, unlike Vi: use ‘\&’ instead.
Viper does not parse search patterns and does not expand special
symbols found there (e.g., ‘~’ is not expanded to the result of the
previous substitution).
Note: _The newline character (inserted as ‘C-qC-j’) can be used in
<repl>_.
‘:[x,y]copy [z]’
Copy text between ‘x’ and ‘y’ to the position after ‘z’.
‘:[x,y]t [z]’
Same as ‘:copy’.
‘:[x,y]move [z]’
Move text between ‘x’ and ‘y’ to the position after ‘z’.
‘&’
Repeat latest Ex substitute command, e.g., ‘:s/wrong/right’.
‘:x,yp’
‘:g/Pat/p’
‘:v/Pat/p’
The above commands display certain buffer lines in a temporary
buffer. The first form above displays the buffer lines between ‘x’
and ‘y’. The second displays the lines of the buffer, which match
a given pattern. The third form displays the lines that do _not_
match the given pattern.
‘#c<move>’
Change upper-case characters in the region to lower-case.
‘#C<move>’
Change lower-case characters in the region to upper-case.
‘#q<move>’
Insert specified string at the beginning of each line in the region
‘C-c M-p and C-c M-n’
In Insert and Replace states, these keys are bound to commands that
peruse the history of the text previously inserted in other insert
or replace commands. By repeatedly typing ‘C-c M-p’ or ‘C-c M-n’,
you will cause Viper to insert these previously used strings one by
one. When a new string is inserted, the previous one is deleted.
In Vi state, these keys are bound to functions that peruse the
history of destructive Vi commands. Viper Specials, for
details.