this is a log website
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

107 lines
8.3 KiB

title : VIM basics
author: zvevqx
published: 2025-11-22
cat: linux
desc: ws
...
👾 MOST OF THIS PAGE IS DIRECT OUTPUT OF CHATGPT 3.5
# Vim Editor
Vim is a powerful and popular text editor that runs in the command-line interface. It is known for its efficient and customizable editing features that allow users to edit text with speed and precision.
# Main Vim Operations
| Operation | Shortcut | Description |
|-------------------------|---------------------------|----------------------------------------------------|
| **Navigation** | | |
| Move left | `h` | Move the cursor left. |
| Move down | `j` | Move the cursor down. |
| Move up | `k` | Move the cursor up. |
| Move right | `l` | Move the cursor right. |
| Move forward one word | `w` | Move forward one word. |
| Move backward one word | `b` | Move backward one word. |
| Move to end of line | `$` | Move to the end of the current line. |
| Move to beginning | `0` | Move to the beginning of the current line. |
| Move to end of file | `G` | Move to the end of the file. |
| Move to beginning of file | `gg` | Move to the beginning of the file. |
| Move to specific line | `<line_number>G` | Move to a specific line number. |
| Move to matching bracket| `%` | Move to the matching parenthesis, bracket, or brace.|
| Move to paragraph start | `{` | Move to the beginning of the current paragraph. |
| Move to paragraph end | `}` | Move to the end of the current paragraph. |
| Move half a page up | `Ctrl+u` | Move half a page up. |
| Move half a page down | `Ctrl+d` | Move half a page down. |
| **Editing** | | |
| Insert before cursor | `i` | Insert text before the cursor. |
| Insert at line start | `I` | Insert text at the beginning of the current line. |
| Append after cursor | `a` | Append text after the cursor. |
| Append at line end | `A` | Append text at the end of the current line. |
| Open line below cursor | `o` | Open a new line below the current line and enter insert mode. |
| Open line above cursor | `O` | Open a new line above the current line and enter insert mode. |
| Delete character | `x` | Delete the character under the cursor. |
| Delete current line | `dd` | Delete the current line. |
| Yank (copy) current line| `yy` | Yank (copy) the current line. |
| Paste after cursor | `p` | Paste the yanked text after the cursor. |
| Paste before cursor | `P` | Paste the yanked text before the cursor. |
| Undo | `u` | Undo the last change. |
| Redo | `Ctrl+r` | Redo the last change. |
| **Search and Replace** | | |
| Search forward | `/search_term` | Search forward for "search_term." |
| Search backward | `?search_term` | Search backward for "search_term." |
| Move to next search result | `n` | Move to the next search result. |
| Move to previous search result | `N` | Move to the previous search result. |
| Replace on current line | `:s/search_term/replacement`| Replace "search_term" with "replacement" on the current line. |
| Global replace | `:%s/search_term/replacement/g` | Replace "search_term" with "replacement" globally in the file. |
| Turn off search highlighting | `:noh` | Turn off search result highlighting. |
| **Saving and Quitting** | | |
| Save | `:w` | Save the current file. |
| Save as | `:w filename` | Save the current file as "filename." |
| Quit | `:q` | Quit Vim. |
| Quit without saving | `:q!` | Quit Vim without saving changes. |
| Save and quit | `:wq` | Save changes and quit Vim. |
| **Visual Mode** | | |
| Enter visual mode | `v` | Enter visual mode to select text. |
| Enter visual line mode | `V` | Enter visual line mode to select lines. |
| Enter visual block mode | `Ctrl+v` | Enter visual block mode to select rectangular blocks of text. |
## some more advance mouvments
# Page and Line Movement Shortcuts in Vim
Vim provides a rich set of keyboard shortcuts for efficient page and line movement within a text document. Below is a table of these shortcuts:
| Shortcut | Description |
|------------------------|---------------------------------------------------|
| **Page Movement** | |
| Page down | `Ctrl+f` or `Space` |
| Page up | `Ctrl+b` or `Ctrl+u` |
| Half a page down | `Ctrl+d` |
| Half a page up | `Ctrl+u` |
| Go to next page | `Ctrl+d` or `Ctrl+f` |
| Go to previous page | `Ctrl+u` or `Ctrl+b` |
| **Line Movement** | |
| Move to beginning of line | `0` or `^` |
| Move to end of line | `$` |
| Move to next line | `j` or `↓` |
| Move to previous line | `k` or `↑` |
| Move down by `n` lines | `n` + `j` or `n` + `↓` |
| Move up by `n` lines | `n` + `k` or `n` + `↑` |
| Move to specific line | `:<line_number>` or `G` + `g` + `:<line_number>` |
| **Scrolling** | |
| Scroll the screen up | `Ctrl+y` |
| Scroll the screen down | `Ctrl+e` |
| Center the screen | `Ctrl+l` |
| Move to the top | `H` |
| Move to the middle | `M` |
| Move to the bottom | `L` |
| **Jumping** | |
| Jump to beginning of file | `gg` |
| Jump to end of file | `G` |
| Jump to line in the middle | `M` + `G` |
| Jump to last edit | `'` + `.` |