# Why vi Rocks A collection of commands, command sequences in [vi(1)](https://man.openbsd.org/vi.1)/[ex(1)](https://man.openbsd.org/ex.1) or with 3rd party unitilities.
These all work with at least [nvi](https://en.wikipedia.org/wiki/Nvi) 1.79 and 2.1.3 (unicode). #### Yank / delete an arbitrary number of lines. 1) mark the first line: mk 2) move to last line 3a) yank: y'k 3b) delete: d'k 4) move to new line 5) paste with P or p #### Join all lines in a file :%j #### When you need root permissions to write the file :w !doas tee % #### Diff the file on disk with the file in cache :w !diff -u % - #### Make a backup of the file on disk :! cp % %.bak #### Sort lines :%!sort #### Dedup lines :%!uniq