Advanced VIM skills suggested by ChatGPT

Jimmy (xiaoke) Shen
4 min readMay 19


Certainly! Here are some advanced Vim tips that can enhance your productivity and efficiency:

1. Marks and Jumps:
— Use lowercase marks (`ma`, `mb`, etc.) to bookmark locations within a file. Jump to a mark with ```a` (backtick + mark) or `a’` (single quote + mark).
— Use uppercase marks (`mA`, `mB`, etc.) to create global marks that work across files. Jump to a global mark with ```A` or `A’`.
— The `:jumps` command shows a list of jump locations. Navigate the list with `Ctrl+]` to jump to a specific location.

2. Registers:
— Vim has various registers to store and manipulate text. For example, `”ayy` yanks (copies) the current line into register `a`, and `”ap` pastes (puts) the contents of register `a`.
— Access the system clipboard with the `”+` register. For instance, `”+yy` yanks to the clipboard, and `”+p` pastes from the clipboard.

3. Macros:
— Macros allow you to record and repeat a sequence of commands. Start recording with `q<register>` (e.g., `qa`), perform your actions, and stop recording with `q`. Execute the macro with `@<register>` (e.g., `@a`).
— To repeat a macro multiple times, prefix the macro execution with a count. For example, `5@a` executes macro `a` five times.

4. Visual Block mode:
— Use Visual Block mode (`Ctrl+v`) to select a rectangular block of text. This is useful for performing operations on columns, such as inserting or deleting text in multiple lines simultaneously.
— After selecting the block, you can modify the text, indent it (`>`, `<`), or apply other commands to the selected region.

5. Command-line window:
— Open the command-line window with `q:`. It allows you to edit and execute previous commands without leaving the current window.
— Use the up and down arrow keys to navigate through command history in the command-line window. Press Enter to execute the selected command.

6. Split windows and tabs:
— Split the window horizontally with `:split` or vertically with `:vsplit`. Navigate between splits with `Ctrl+w <arrow>`.
— Create a new tab with `:tabnew` or switch between tabs with `gt` (next tab) and `gT` (previous tab).
— Move the current buffer to a new split or tab with `:tabmove` or `:move`.

Remember, practice is key to mastering these advanced Vim techniques. Experiment with them in your daily editing tasks, and gradually incorporate them into your workflow.

Absolutely! Here are some more advanced Vim tips to further enhance your productivity:

1. Multiple Cursors:
— Press `Ctrl+v` to enter Visual Block mode and select multiple occurrences of a word or character in a block shape.
— Use `I` to insert text simultaneously at the beginning of each line, or `A` to append text at the end of each line.

2. Abbreviations:
— Define custom abbreviations for frequently used words or phrases. For example, `:iabbrev omw on my way` creates an abbreviation for “omw” that expands to “on my way” when you type it in insert mode.

3. Registers:
— Use the `:reg` command to display the contents of all registers. This helps you recall the text stored in different registers and facilitates manipulation.

4. Vim sessions:
— Save your current Vim session with `:mksession` to create a session file. Later, you can restore the session by launching Vim with `vim -S sessionfile`. This restores all the previously opened files, splits, and other settings.

5. Search and Replace:
— Use the `:substitute` command with flags to perform advanced search and replace operations. For example, `:%s/foo/bar/gc` replaces all occurrences of “foo” with “bar” throughout the file, asking for confirmation on each substitution.
— The `:global` command (`:g`) allows you to run Ex commands on lines that match a specific pattern. For example, `:g/TODO/d` deletes all lines containing “TODO”.

6. Folding:
— Fold long sections of code or text to improve readability. Move to the desired block and use `zf` to create a fold or `zo` to open a fold. Use `zc` to close a fold or `zr` to reduce folding.

7. Customization:
— Customize your Vim environment by editing your `vimrc` file. You can define mappings, set options, and configure plugins to tailor Vim to your specific needs.
— Explore the rich world of Vim plugins to extend its functionality. Popular plugin managers like Vundle, Pathogen, or Vim-Plug can simplify the installation and management of plugins.

Remember to refer to Vim’s documentation (`:help`) for more detailed information on each feature and to discover additional advanced capabilities. Keep exploring and practicing, and you’ll continue to uncover new ways to leverage Vim’s power and efficiency.