tags:: #note/boat #note/develop #on/computing
# Julianne's Vim Cheat Sheet
This note is meant to be a quick reference for Vim commands I want to remember.
> [!NOTE] Note
> The shortcuts listed here are specific to my own setup. I am a [Neovim](https://neovim.io/) user. Specifically, I use a heavily-modified configuration based on the [LazyVim](https://neovim.io/) starter. Because of this, some of the commands in this note may or may not work in your own setup.
> [!NOTE] Note
> Not every keybind in existence is listed here. I am only listing the shortcuts that I want to remember. As I learn and use more of them, they will be added to the list.
## Movement and Navigation
| Keybind | Action |
| ------------- | ---------------------------------------------------- |
| `h` | Move cursor left |
| `j` | Move cursor down |
| `k` | Move cursor up |
| `l` | Move cursor right |
| `0` | Jump to the start of the line |
| `gg` | Go to the first line of the document |
| `G` | Go to the last line of the document |
| `5gg` or `5G` | Go to line 5 |
| `ctrl + e` | Move screen down one line (without moving cursor) |
| `ctrl + y` | Move the screen up one line (without moving cursor) |
| `ctrl + b` | Move the screen up one page (cursor to last line) |
| `ctrl + f` | Move the screen down one page (cursor to first line) |
| `ctrl + d` | Move cursor and screen down 1/2 page |
| `ctrl + u` | Move cursor and screen up 1/2 page |
> [!tip]
> Prefix a cursor movement command with a number to repeat it. For example, `8j` moves the cursor down 8 lines.
## User Interface
### Window Management
| Keybind | Action |
| -------------- | ---------------------------- |
| `ss` | Split window |
| `sv` | Split window vertically |
| `sh` | Move cursor left one window |
| `sk` | Move cursor up one window |
| `sj` | Move cursor down one window |
| `sl` | Move cursor right one window |
| `<C-w><left>` | Resize window left |
| `<C-w><up>` | Resize window up |
| `<C-w><down>` | Resize window down |
| `<C-w><right>` | Resize window right |
### Tab Management
| Keybind | Action |
| ----------------- | ------------------------------- |
| `te` | Open new tab |
| `<tab>` | Switch to the next open tab |
| `<shift> + <tab>` | Switch to the previous open tab |
## Code Examination
| Keybind | Action | Plugin |
| ---------- | ----------------------------------- | ------------------------------------------------------------------ |
| `ctrl + j` | Go to next diagnostic warning/error | |
| `;e` | List diagnostic warnings/errors | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `;f` | Find files | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `;r` | Live grep | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `\\` | List buffers | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `;t` | Help tags | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `;;` | Resume | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `;s` | Open treesitter | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |
| `sf` | Open file browser | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) |