--- title: "Vim - The Personal Man" tags: - vim --- ## Navigation Navigating vim is beautiful ### Exiting πŸ‘» | | | | --------------- | ------------------------------------- | | :q | to `quit` the file | | :e! | to `trash` all changes and **reload** | | :q! | to `trash` all changes and **quit** | | :wq | to `save` the changes and **quit** | | ZZ (Shift + zz) | to `save` the changes and **quit** | ## Navigation | | | | ---------------------------------- | -------------------------------------------- | | h j k l | βƒͺ ↓ ↑ β†’ | | 0 | to the `start` of the line | | $ (Shit + 4) | to the `end` of the line | | e | to `end` of word | | w |`forward` one **word** | | W |`forward` one **Word** | | b |`backward` one **word** | | B |`backword` one **Word** | | *<`number`>* wW / e / bB / h j k l | Move *<`number`>* times *<`text objects`>* | | *<`number`>* G | to **specific line** | | % | to **matching parenthesis {} () []** | | zz | re-center | ## Text manipulation | | | | --- | --------------------------------------------- | | x | delete at the cursor (β†’ in normal mode still) | | i | insert before the cursor | | I | insert beginning of the line | | a | insert after the cursor | | A | append after the line | | o | open line above | | O | open line below | | s | delete character and insert | | S | delete line and insert | | R overstrike mode | replace text character by character (max 1 line) | | c *<`movement`>* wW / bB / 2j / $/ 0 | change till (β†’ in insert mode now) | cc - change one line | | d *<`movement`>* wW / bB / 2j / $/ 0 | delete till (β†’ in normal mode still) | dd - delete one line ... | | r | replace single character (β†’ don’t have to press ESC) | | *<`number`>* ~ | change letter case | > Remember - **(command)*(number)(text object)**** ### Exiting πŸ‘» | | | | --------------- | ------------------------------------- | | :q | to `quit` the file | | :e! | to `trash` all changes and **reload** | | :q! | to `trash` all changes and **quit** | | :wq | to `save` the changes and **quit** | | ZZ (Shift + zz) | to `save` the changes and **quit** | ## Navigation | | | | ---------------------------------- | -------------------------------------------- | | h j k l | βƒͺ ↓ ↑ β†’ | | 0 | to the `start` of the line | | $ (Shit + 4) | to the `end` of the line | | e | to `end` of word | | w |`forward` one **word** | | W |`forward` one **Word** | | b |`backward` one **word** | | B |`backword` one **Word** | | *<`number`>* wW / e / bB / h j k l | Move *<`number`>* times *<`text objects`>* | | *<`number`>* G | to **specific line** | | % | to **matching parenthesis {} () []** | | zz | re-center | ## Text manipulation | | | | --- | --------------------------------------------- | | x | delete at the cursor (β†’ in normal mode still) | | i | insert before the cursor | | I | insert beginning of the line | | a | insert after the cursor | | A | append after the line | | o | open line above | | O | open line below | | s | delete character and insert | | S | delete line and insert | | R overstrike mode | replace text character by character (max 1 line) | | c *<`movement`>* wW / bB / 2j / $/ 0 | change till (β†’ in insert mode now) | cc - change one line | | d *<`movement`>* wW / bB / 2j / $/ 0 | delete till (β†’ in normal mode still) | dd - delete one line ... | | r | replace single character (β†’ don’t have to press ESC) | | *<`number`>* ~ | change letter case | > Remember - **(command)*(number)(text object)**** ### Exiting πŸ‘» | | | | --------------- | ------------------------------------- | | :q | to `quit` the file | | :e! | to `trash` all changes and **reload** | | :q! | to `trash` all changes and **quit** | | :wq | to `save` the changes and **quit** | | ZZ (Shift + zz) | to `save` the changes and **quit** | ## Navigation | | | | ---------------------------------- | -------------------------------------------- | | h j k l | βƒͺ ↓ ↑ β†’ | | 0 | to the `start` of the line | | $ (Shit + 4) | to the `end` of the line | | e | to `end` of word | | w |`forward` one **word** | | W |`forward` one **Word** | | b |`backward` one **word** | | B |`backword` one **Word** | | *<`number`>* wW / e / bB / h j k l | Move *<`number`>* times *<`text objects`>* | | *<`number`>* G | to **specific line** | | % | to **matching parenthesis {} () []** | | zz | re-center | ## Text manipulation | | | | --- | --------------------------------------------- | | x | delete at the cursor (β†’ in normal mode still) | | i | insert before the cursor | | I | insert beginning of the line | | a | insert after the cursor | | A | append after the line | | o | open line above | | O | open line below | | s | delete character and insert | | S | delete line and insert | | R overstrike mode | replace text character by character (max 1 line) | | c *<`movement`>* wW / bB / 2j / $/ 0 | change till (β†’ in insert mode now) | cc - change one line | | d *<`movement`>* wW / bB / 2j / $/ 0 | delete till (β†’ in normal mode still) | dd - delete one line ... | | r | replace single character (β†’ don’t have to press ESC) | | *<`number`>* ~ | change letter case | > Remember - **(command)*(number)(text object)****