0% found this document useful (0 votes)
21 views6 pages

Gvim Advanced Commands

The document is a GitHub repository for a personally curated list of advanced Vim tricks, organized into sections such as Search and Replace, Registers, Navigation, and various modes (NORMAL, INSERT, VISUAL). It provides commands and techniques for efficient text editing, file navigation, and customization within Vim. The cheatsheet aims to enhance user proficiency with Vim through practical examples and shortcuts.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views6 pages

Gvim Advanced Commands

The document is a GitHub repository for a personally curated list of advanced Vim tricks, organized into sections such as Search and Replace, Registers, Navigation, and various modes (NORMAL, INSERT, VISUAL). It provides commands and techniques for efficient text editing, file navigation, and customization within Vim. The cheatsheet aims to enhance user proficiency with Vim through practical examples and shortcuts.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

4/3/25, 11:55 AM GitHub - hspazio/vim-advanced-cheatsheet: Personally curated list of advanced Vim tricks

hspazio / vim-advanced-cheatsheet Public

Personally curated list of advanced Vim tricks

24 stars 0 forks Branches Tags Activity

Star Notifications

Code Issues Pull requests Actions Projects Security Insights

1 Branch 0 Tags Go to file Go to file Code

hspazio Update README.md 2623061 · 7 years ago

README.md Update README.md 7 years ago

Vim Advanced Cheatsheet


Personally curated list of advanced Vim tricks inspired by http://vimcasts.org

Table of contents

1. Search and Replace


2. Registers
3. Navigation
4. NORMAL mode
5. INSERT mode
6. VISUAL mode
7. Spelling
8. History
9. Commands

Search and Replace

Search in current buffer


:set hlsearch :set nohlsearch to toggle search highlighting

Use * to search for the word under the cursor - like /word but without typing

https://github.com/hspazio/vim-advanced-cheatsheet 1/6
4/3/25, 11:55 AM GitHub - hspazio/vim-advanced-cheatsheet: Personally curated list of advanced Vim tricks

Use # to search for the word under the cursor in reverse order
Use /word otherwise

Replace in current buffer


:%s/\s\+$//e - strip trailing white spaces
replace in the whole file :%s
the spaces till the end of the line /\s\+$/
with nothing //
and suppress any errors if no matches found e
:s/\%V#/ /g - replace # character with whitespace only within the VISUAL selection
\%V

Search in multiple files


Vimgrep is a very powerful search tool that allows searching not only in the current file but
in any provided targets.

Results will appear in the quickfix.

:vimgrep/{pattern}/{target} - search for pattern where {target} can be:

% current file

*.rb wildcards or file list

`find . -type f` backtick expression

## special symbol that represents the args (set by :args <expr> )

Also :vimgrep can be shorted as :vim

Replace in multiple files


:vimgrep /{patter}/ {target} search for a pattern

:cdo s/{pattern}/{replacement}/ge replace for each file in the quickfix - e will


ignore errors if not matches found
:cdo w or :cdo update to write the changes

Multiple repeats
:g/monkey/d - delete all lines containing "monkey"

:g/^monkey/d - delete all lines starting with "monkey"

:v/monkey/d - delete all lines that do not match "monkey" (like grep -v)

:g/^$/d - delete blank lines

All commands above consist in the composition of 3 subcommands:

1. grep the document globally :g


https://github.com/hspazio/vim-advanced-cheatsheet 2/6
4/3/25, 11:55 AM GitHub - hspazio/vim-advanced-cheatsheet: Personally curated list of advanced Vim tricks

2. to find blank lines /^$/


3. and delete them d

Registers
"ayy yanks current line into register "a"

"ap pastes from register "a"

"Ayy appends yanked line to register "a"

:reg a inspects register "a"

qaq resets register "a"

:g/monkey/yank A yanks all lines containing "monkey" and append them into register
"a"

Navigation
Ctrl-w g f while being with the cursor on a word (e.g. "file.txt") opens the file with
that name on a new window

from terminal: vim -p file1 file2 file3 opens Vim and the 3 files on separate tabs
(panels)

Ctrl-^ alternates between 2 buffers

type :ls to see the open buffers


switch between active buffer (marked as %a ) and the previous one (marked as
#h ) where "h" stands for "hidden"

:only closes all windows leaving only the current one open

Ctrl-w _ maximizes the current window vertically

Ctrl-w | maximizes the current window horizontally

Ctrl-w = equalizes/restores original sizes

Ctrl-w r rotates windows clockwise ( R for inverse)

Ctrl-w HJKL moves the window to the far side direction

Ctrl-w T extracts the current window in a new tab

:tabclose closes current tab

:tabonly closes all tabs leaving the current one open

:tabmove <number> moves the current tab to the N position

<number>gt goes to the N-th tab


https://github.com/hspazio/vim-advanced-cheatsheet 3/6
4/3/25, 11:55 AM GitHub - hspazio/vim-advanced-cheatsheet: Personally curated list of advanced Vim tricks

File explore window


:Explore opens an interactive file explorer - same as :e.
% creates a file

d creates a directory

:sp. opens the file explorer in an horizontal split

:vs. opens the file explorer in a vertical split

NORMAL mode
:r! <system cmd> >> runs a command on the system shell and reads the output into
the current position of the current buffer

Motions
t for "tag": cit as "change inner html tag"

/ for "search" term: c/term as "change until 'term' is found"

? is like / but searches backwards

r for "replace": select line + r# will replace all characters with #

a goes to INSERT mode "after" the current character

A goes to INSERT mode at the end of the line ("after ALL characters in line")

Y yanks entire line

P pastes above the cursor while p pastes after the cursor

g; goes to the last INSERT mode position - using it multiple times jumps backwards
in the changelist history

use g, to move forward in the changelist

% jumps between parenthesis or line block delimiters (E.g. Ruby's begin-end)


README

s deletes "character" under cursor and goes into INSERT mode

S deletes "line" and goes into INSERT mode

With lines that wrap on multiple "visible" lines, prefix commands with g to move
through visible lines

gj moves to the next visible line

g$ moves at the end of the visible line

https://github.com/hspazio/vim-advanced-cheatsheet 4/6
4/3/25, 11:55 AM GitHub - hspazio/vim-advanced-cheatsheet: Personally curated list of advanced Vim tricks

:-7t. copy line from 7 lines above (with relative numbers) "to" ( t ) "this" ( . )
location

use :+10t. to copy the 10th line below.


without +/- sign it consider the "actual" line number
t is the short for copy command

INSERT mode

Suggestions
Ctr-p and Ctr-n opens a list of suggestions for auto-completion

Ctr-x Ctr-f opens a list of "suggestions based on the files/directories" in the current
directory
Ctr-x Ctr-l opens a list of "suggestions based on the lines" in the current file

Ctr-x Ctr-p will suggest similar patterns - also repeating the same commands will
continuously add the next line

Paste commands
Ctr-r 0 pastes content of register "0 - Like "0p in NORMAL mode

Ctr-r = evaluates an expression and inserts the result inline

VISUAL mode
Ctrl-v to enter in Visual select mode
o to control the "opposite" corner for selection

Spelling
:set spell enables the spell checker ( :set nospell to turn off) - alternatively :set
spell! to toggle on/off

]s goes to the next misspelled word - or previous one with [s

z= opens a list of suggestions

1z= tries to autocorrect using the "first" (more likely) occurrence

zg marks word as good - whitelist word

zw marks word as bad - blacklist word

zug and zuw to undo

:set spelllang=en sets the language for the dictionary

https://github.com/hspazio/vim-advanced-cheatsheet 5/6
4/3/25, 11:55 AM GitHub - hspazio/vim-advanced-cheatsheet: Personally curated list of advanced Vim tricks

History
:earlier 1h reverts to version of 1 hour ago

:later 1h goes forward to 1 hour ahead

Commands
:!% runs current file in shell

Argdo
:argdo <command> runs the command for all files in the :args list
:argdo %s/monkey/gorilla/ge replaces "monkey" with "gorilla" and ignores errors
if no matches found
:silent argdo %s/Bob/Alice/ge hides details of the substitutions

Releases

No releases published

Packages

No packages published

https://github.com/hspazio/vim-advanced-cheatsheet 6/6

You might also like