Original Link:
https://vimtricks.com/p/50-useful-vim-commands/
Here are 50 useful Vim commands that work in normal mode. Many of these can be combined and modified to produce dozens more. Use these as inspiration for your own repeatable workflows. In no particular order:
1. `gg` Move to the first line of the file
2. `G` Move to the last line
3. `gg=G` [Reindent the whole file](https://vimtricks.com/p/vimtrick-indenting-code/)
4. `gv` [Reselect the last visual selection](https://vimtricks.com/p/vimtrick-reselect-last-visual-selection/)
5. `` `< `` Jump to beginning of last visual selection
6. `` `> `` Jump to end of last visual selection
7. `^` Move to first non-blank character of the line
8. `g_` Move the last non-blank character of the line (but you [remove trailing whitespace](https://vimtricks.com/p/vim-remove-trailing-whitespace/), right)
9. `g_lD` Delete all the trailing whitespace on the line
10. `ea` Append to the end of the current word
11. `gf` Jump to the file name under the cursor
12. `xp` [Swap character forward](https://vimtricks.com/p/swap-two-characters-in-vim/)
13. `Xp` [Swap character backward](https://vimtricks.com/p/swap-two-characters-in-vim/)
14. `yyp` Duplicate the current line
15. `yapP` Duplicate the current paragraph
16. `dat` Delete around an HTML tag, including the tag
17. `dit` Delete inside an HTML tag, excluding the tag
18. `w` Move one word to the right
19. `b` Move one word to the left
20. `dd` Delete the current line
21. `zc` [Close current fold](https://vimtricks.com/p/vim-code-folding/)
22. `zo` [Open current fold](https://vimtricks.com/p/vim-code-folding/)
23. `za` [Toggle current fold](https://vimtricks.com/p/vim-code-folding/)
24. `zi` [Toggle folding entirely](https://vimtricks.com/p/vim-code-folding/)
25. `<<` Outdent current line
26. `>>` Indent current line
27. `z=` [Show spelling corrections](https://vimtricks.com/p/vim-spell-check/)
28. `zg` [Add to spelling dictionary](https://vimtricks.com/p/vim-spell-check/)
29. `zw` [Remove from spelling dictionary](https://vimtricks.com/p/vim-spell-check/)
30. `~` Toggle case of current character
31. `gUw` [Uppercase until end of word](https://vimtricks.com/p/change-character-case/) (u for lower, ~ to toggle)
32. `gUiw` [Uppercase entire word](https://vimtricks.com/p/change-character-case/) (u for lower, ~ to toggle)
33. `gUU` [Uppercase entire line](https://vimtricks.com/p/change-character-case/)
34. `gu
[Lowercase until the end of the line](https://vimtricks.com/p/change-character-case/)
35. `da"` [Delete the next double-quoted string](https://vimtricks.com/p/vimtrick-efficient-changes/)
36. `+` Move to the first non-whitespace character of the next line
37. `S` Delete current line and go into insert mode
38. `I` insert at the beginning of the line
39. `ci"` [Change what’s inside the next double-quoted string](https://vimtricks.com/p/vimtrick-efficient-changes/)
40. `ca{` [Change inside the curly braces](https://vimtricks.com/p/vimtrick-efficient-changes/) (try \[, (, etc.)
41. `vaw` [Visually select word](https://vimtricks.com/p/vimtrick-efficient-changes/)
42. `dap` [Delete the whole paragraph](https://vimtricks.com/p/vimtrick-efficient-changes/)
43. `r` [Replace a character](https://vimtricks.com/p/normal-mode-replacement/)
44. `` `[ `` Jump to beginning of last yanked text
45. `` `] `` Jump to end of last yanked text
46. `g;`[Jump to the last change you made](https://vimtricks.com/p/vim-jump-to-last-change/)
47. `g,`[Jump back forward through the change list](https://vimtricks.com/p/vim-jump-to-last-change/)
48. `&` [Repeat last substitution on current line](https://vimtricks.com/p/vimtrick-repeat-the-last-substitution/)
49. `g&` Repeat last substitution on all lines
50. `ZZ` Save the current file and close it