VIM for the heretics === Cheatsheet commands for heretics, who used to use Visual studio code or the like. ## Move "Avoid the mouse", is the Vim philosophy. For that, use `h j k l` to go left, down, up, right respectively. ## Escape Anytime, in case of doubt, `escape` yourself, again and again. Or [breakout](https://www.youtube.com/watch?v=-P67b07z7Qw). ## Edit & remove `i` for edit mode `a` idem than `i` but move the cursor to the next character `o` idem than `i` but insert a new line `x` to remove the current char ## Save and quit & Unsave and quit `:q` to quit (won't work if you've made modifications. See below) `:wq` to save and quit `:q!` to quit and not save your modifications ## Copy & paste The syntax in Vim is: - y for yank (aka copy) - p for put (aka paste) - d for delete (aka cut) - c for change ### for a line `dd` for deleting a line and put it in the buffer (aka cut or delete) `yy` for copying the line in the buffer (aka copy or yank) `p` or `P` for pasting the buffer on the following line or the current one `cw` for changing word, i.e. delete a word and pass to edit mode ### for characters `v` to select char `V` to select the entire line `Ctl-v` to select rectangular block `d` to delete (aka cut) `y` to copy (aka copy or yank) ### Copy in clipboard `:"*yiw"` to copy the inner word `":*yy"` to copy the current line ## Undo & redo `u` for undoing `Ctl-r` for redoing `U` undoing all change in one line. Avoid this weird command, please, and undo it. ## Quick move in lines `^` and `$` to go to start and end of a line (this is regex-like) `w` and `b` to go one word at a times and backward (`W` is an alternative to `w`) ## See line number `:set number` To toggle, use `:set number!` or `:set nu!:` Relative number is useful to see the current line as the zero line. Copy can be much easier this way. `:set relativenumber` or `:set rnu`