Mode Switching
i/a/o: Enter insert mode (insert before, after, or on a new line).
Esc: Exit insert mode and return to normal mode.
v: Enter visual mode (highlight text).
V: Enter visual line mode (highlight entire lines).
Ctrl + v: Enter visual block mode (highlight blocks of text).
File Operations
:w: Save the file.
:wq: Save and quit.
:q: Quit the editor.
:q!: Force quit without saving.
:set number: Show line numbers.
:set nonumber: Hide line numbers.
:e filename: Open a file in Vim.
:r filename: Insert the content of another file into the current file.
:! command: Execute an external command (e.g., :!ls to list files).
Cursor Movement
h/j/k/l: Move the cursor left, down, up, and right.
b: Move to the beginning of the current/previous word.
e: Move to the end of the current/next word.
w: Move to the beginning of the next word.
0: Move to the beginning of the line.
$: Move to the end of the line.
G: Move to the end of the file.
gg: Move to the beginning of the file.
Ctrl + f: Scroll forward one page.
Ctrl + b: Scroll backward one page.
H: Move to the top of the screen.
M: Move to the middle of the screen.
L: Move to the bottom of the screen.
Ctrl + o: Jump back to the previous cursor position.
Ctrl + i: Jump forward to the next cursor position.
Editing Operations
dd: Delete a line.
d motion: Delete text following a movement (e.g., dw to delete a word).
x: Delete a character.
u: Undo the last operation.
Ctrl + r: Redo the last undone operation.
yy: Copy (yank) a line.
y motion: Copy text following a movement (e.g., yw to copy a word).
p: Paste the copied or deleted text.
r: Replace a single character under the cursor.
cw: Change (delete and enter insert mode) a word.
ci: Change inside quotes.
>>: Indent a line.
<<: Un-indent a line.
Search and Replace
/pattern: Search for a pattern.
?pattern: Search for a pattern in reverse.
n: Repeat the search in the same direction.
N: Repeat the search in the opposite direction.
:%s/old/new/g: Replace all occurrences of “old” with “new” in the file.
:noh: Clear search highlighting.
Buffer and Window Management
:bn: Go to the next buffer.
:bp: Go to the previous buffer.
:bd: Close the current buffer.
:split: Split the window horizontally.
:vsplit: Split the window vertically.
Ctrl + w w: Switch between windows.