Vim Cheat Sheet Mac



Contribute to macwoj/vim-cheatsheet development by creating an account on GitHub. VI “Cheat” Sheet ACNS Bulletin ED–03 February 1995 File management commands:w name Write edit buffer to file name:wq Write to file and quit:q! Quit without saving changes ZZ Same as:wq:sh Execute shell commands (d) Window motions d Scroll down (half a screen) u Scroll up (half a screen) f Page forward b Page. Vim command to edit file is important information accompanied by photo and HD pictures sourced from all websites in the world. Download this image for free in High-Definition resolution the choice 'download button' below. 🍻 awesome cheatsheet. Awesome Cheatsheet' and other potentially trademarked words, copyrighted images and copyrighted readme contents likely belong to the legal entity.

  • Vi Insert mode & Command Mode
  • Vi File Navigvation
  • More Advanced Ways of Entering Insert Mode
  • Vi Replace
  • Vi Delete
  • Vi Delete Line commands
  • Vi Copy and Paste
  • Vi Search Commands
  • Vi Search and Replace Commands
  • Advanced Vi commands
    • Vi Split Windows
  • Vi Save commands
  • Misc Vi Commands

A collection of Vi commands in a cheat sheet, handy reference document for learning / remembering Vi commands. I refer to Vim / Vi as the same thing in this document, but in most modern Linux distros vi is often a symlink to vim.

It’s worth learning Vi as it’s installed on pretty much every Linux base system out there.

If you’re learning Vi, you might want to check out Vim Adventures - an online adventure game that uses Vi commands.

Vim Resources

Enjoy the cheat sheet :)

Vi Insert mode & Command Mode

Vi has two basic modes, insert mode - used for entering text and command mode, used for entering commands. See the tip section below for switching between each mode.

Vi Insert Mode

Enter vi insert mode, insert mode is used for inserting text.

Vi CommandDescription

i

Enter insert mode from command mode.

Vi Command Mode - Vi Insert Mode

Vi has two modes, insert mode for inserting text and command mode a common mistake is attempting to edit in command mode. If you are unsure on what mode Vi is using double tap escape (enters command mode) and then hit 'i' if you wish to enter insert mode.

Vi Command Mode

Vim CommandDescription

Esc

Hit escape to enter command mode.

Vi File Navigvation

Basic file navigation, how to move up, down, left and right.

Cheat
Arrow Keys

Modern Vi / Vim editors will allow you to use the arrow keys, but it's worth learning the correct way to navigate vi without using the arrow keys in case you come across Vi command line or a shell that doesn't like arrow keys.

Move up, down, left and right in Vim

You’ll need to be in command mode for these commands, navigation in vi uses hjkl

Vim CommandDescription

h

Move left - easy to remember h key is on the left

j

Move down - I remember it with j(d)own for down

k

Move up - k for up - I remember it with (k)up

l

Move right - l is on the right side of hjkl and moves you right

Vi Page Down

Vim CommandDescription

Ctrl+F

Vi move forward a page

Vi Half a Page Down

Vi CommandDescription

Ctrl+D

Vi move half a page down

Vi Page Up

Vi Half a Page Up

Vi CommandDescription

Ctrl+U

Vi move up half a page

More Advanced Ways of Entering Insert Mode

Vi Insert Text at Start of the Line

Vi CommandDescription

I

Insert text at the beginning of the line

Vi Insert Text at the end of the Line

Vi CommandDescription

A

Appends text at the end of the line

Vi Append text to the right of the Cursor

Vi CommandDescription

a

Appends text to the right of the cursor

Begin a new line below

Vi CommandDescription

o

Begin a new line, below the current line

Vi replace line

Vi CommandDescription

O

Removes line, and allows you to type a new line in it's place

Vi Replace

Change a Word in Vi

Vi CommandDescription

cw

Replaces a single word, place cursor on first letter and hit cw (Change Word)

Replace line, but not wrapped text

Vi CommandDescription

c$

Replaces the current line but doesn’t extend to change the rest of a wrapped sentence on the screen

Vi Replace Character

Vi CommandDescription

r

Replaces only the character under the cursor

Vi Replace

Vi CommandDescription

R

Replaces over the top of existing text, until the user hits return.

Vi Delete

Vi Delete Single Character After the Cursor

Vi CommandDescription

x

Vi deletes single character after the cursor

Vi Delete Character before the Cursor

Vi CommandDescription

X

Vi deletes character before the cursor.

Vi Delete Word

Vi CommandDescription

dw

Vi Delete Word, deleted the word under the cursor, from the curosr position onward

Vi Delete Line commands

Vi Delete Line

Vi CommandDescription

dd

Delete the current line in Vi

Vi Delete until end of Line

Vi CommandDescription

D

Deletes from cursor to end of line

Delete to end of screen

Vi CommandDescription

dL

Deletes from cursor to end of screen

Delete to end of file

Vi CommandDescription

dG

Deletes from cursor to end of file

Vi Delete From Cursor To Start of Line

Vi CommandDescription

d^

Deletes from cursor to start of line

Vi Copy and Paste

Vi Copy Line

Vi CommandDescription

yy

Copies current line into unnamed buffer

Vi Copy 3 Lines of Text

Vi CommandDescription

3yy

Copy 3 lines of text into unnamed buffer

Vi Copy Word

Vi CommandDescription

yw

Copy word under cursor into unnamed buffer

Vi Copy 3 Words

Vi CommandDescription

3yw

Copy 3 words into unnamed buffer

Vi Paste Commands

Vi CommandDescription

P

Copy contents of unamed buffer to right of cursor

Vi CommandDescription

p

Copy contents of unamed buffer to left of cursor

Vi Search Commands

Vi Search forward

Vi Search Back

Vi CommandDescription

SHIFT+N

Vi search backward in file

Vi Search and Replace Commands

Vi Search and Replace First Instance

Vi CommandDescription

:s/find-string/replace-string/

Vi search and replace first instance of specified string

Vi Search and Replace on a Single Line

Vi CommandDescription

:s/find-string/replace-string/g

Vi search and replace all instances of specified string on current line

Vi Search and Replace Entire File

Vi CommandDescription

:%s/find-string/replace-string/g

Vi search and replace all instances of specified string for entire file

Vi Search for part of a Word

A fuzzy search allows you to find something that you only know part of, for example if you wanted to find all instances of lines starting with the word “Picard” you would use the following:

Vi CommandDescription

/^Picard

Vi search within file words starting with Picard

Vi Search for words ending with $string

Vi CommandDescription

/worf$

Vi search within file for word engine with worf

Vi Search for Metacharacters

Vi CommandDescription

/*

Vi search within file for metacharacters like, *

Vi Exact Match Search Only

Vi CommandDescription

/star.

Vi exact search only, will return instances of 'star only', not starfleet or star-trek

Vi Search for a range of Strings

Helpful for finding version numbers in text files.

Vi CommandDescription

/v2.[1-9]

Vi search for a range, this example would return all v2.1-9 instances within the file, e.g. v2.4 v2.7 etc

Vi Search for Upper and Lowercase

Search for upper and lowercase strings in Vi.

Vi CommandDescription

/ [tT] [hH [eE]

Vi search upper or lowercase strings, this example would return any instance of the word 'the'. e.g. The, THE, tHE, tHe

Advanced Vi commands

Vi View Options

Vi Run Shell Commands

Run shell commands from Vi.

Vi CommandDescription

:! ls -l

Run shell command from Vi, in this example ls -l is executed

Vi Joining Lines

Backspace doesn’t always work…

Vi CommandDescription

SHIFT+J

Position the cursor in either line you wish to join, and press SHIFT+J

Vi Split Windows

Useful for comparing files, to switch between windows press SHIFT+W

Vi Split Window Horizontally

Vi CommandDescription

:split

Split window Horizontally in Vi

Vi Split Window Virtically

Vi CommandDescription

:vsplit

Split window Virtically in Vi

Vi Close All Split Windows

Vi CommandDescription

:only

Closes all split windows and focuses on the primary window

Vi Save commands

How to Save in Vi

Vi Save and Exit

How to save and exit Vi, personally I use :wq

Vi CommandDescription

:wq

Save and exit Vi

:x

Exit - Vi will prompt and ask if you wish to save

SHIFT+ZZ

Another way to Save and Exit Vi

wq!

Forces save on read only files, and exits

</tr></tr></tr>

Misc Vi Commands

Vi Undo Command

Vi Undo All

Vi undo all since last write.

Vi CommandDescription

:+X+!

Undo everything since last write

Vi Show File Name

SHIFT+G shows the file name, number of lines and current position.

Vi Multipliers

Almost every command in Vi can leverage multipliers, typically it’s a case of prefixing the command with a numnber. Example: 10W would move 10 words to the right.

Since the 1970s, Vi and Vim are popular amongst developers and are present on most UNIX-based servers.

These free and open source modal text editors can be a bit hard to use at first, but they are extremely powerful.

Here is our ultimate Vim Cheat Sheet, featuring over 150 commands to supercharge your coding with Vi/Vim.

A Quick Intro to Vim

Vi is a modal text editor first released in 1976 for Unix systems. Vim, (Vi Improved) Vi’s successor, was first released in 1991. Despite its very old age, Vim is extremely popular among web developers and system administrators, as it is installed by default on all Unix-based systems (Mac OS and Linux distros).Unlike classic text editors, Vim features different modes used for different operations. Vim has a total of 12 modes, although you will mostly use the following:
  • Insert Mode: This mode is used to insert text by typing, like you would do on any other text editor. To enter insert mode, type i while in command mode.
  • Command Mode: Also named Normal Mode, this mode is used to type Vim commands such as those you’ll find in our Vim Cheat Sheet. To exit insert mode and enter command mode, hit the Esc key of your keyboard.
  • Visual Mode: Similar to command mode, but used to highlight areas of text. Normal commands are run on the highlighted area, which, for instance, can be used to move or edit a selection. Press the v key to start visual mode. To exit visual mode, press the Esc key.

Basics

Let’s start with basic commands that will allow you to write, save and quit files. Remember that these Vim commands need to be typed while in command or visual mode. Exit insert mode by hitting the Esc key, then type the command of your choice.
:e filenameOpen filename for edition
:wSave file
:qExit Vim
:q!Quit without saving current file
:xWrite/Save file (if changes has been made) and exit
:sav filenameSave current file as filename
.Repeat the last change made in normal mode
5.Repeat 5 times the last change made in normal mode

Moving In The File

Vim features powerful commands that allow you to easily move the cursor position to any desired location within the current file, making it quick and easy to insert text.
k or Up Arrowmove cursor up one line
j or Down Arrowmove cursor down one line
emove cursor to the end of the word
bmove the cursor to the beginning of the word
0move the cursor to the first non-blank character of the line
Gmove the cursor to the end of the file
ggmove the cursor position to the beginning of the file
Lmove the cursor to the bottom of the screen
:59move cursor to line 59. Replace 59 by the desired line number.
%Move cursor to matching parenthesis
[[Jump to function start
[{Jump to block start

Cut, Copy & Paste

Vim features powerful functions to cut, copy, and paste. This section of our Vim Cheat Sheet will show you how to easily perform those operations.Please note that y stands for yank in Vim, which in other editors is usually called copy.
yYank/Copy the selected text to clipboard
pPaste clipboard contents
ddCut current line
ywYank/Copy word
yyYank/Copy current line
y$Yank/Copy to end of line
DCut to end of line

Search

Searching a string within a huge file or multiple files can be tricky. Thanks to Vim, using a few commands you can easily find whatever you’re looking for.
/wordSearch word from top to bottom
?wordSearch word from bottom to top
*Search the word under cursor
/cstringSearch STRING or string, case insensitive
/jo[ha]nSearch john or joan
/< theSearch the, theatre or then
/the>Search the or breathe
/< the>Search the
/< ¦.>Search all words consisting of 4 letters
//Search fred but not alfred or frederick
/fred|joeSearch fred or joe
/<dddd>Search exactly 4 digits
/^n{3}Find 3 empty lines
:bufdo /searchstr/Search in multiple files
bufdo %s/something/somethingelse/gSearch something in all the open buffers and replace it with somethingelse

Replace

Similar to Search, Vim features powerful commands to replace any given text. This part of our cheat sheet contains Vim commands for replacing any portion of text with another.
:%s/old/new/gReplace all occurences of old with new in file
:%s/onward/forward/giReplace onward with forward, case insensitive
:%s/old/new/gcReplace all occurences with confirmation
:2,35s/old/new/gReplace all occurences between lines 2 and 35
:5,$s/old/new/gReplace all occurences from line 5 to EOF
:%s/^/hello/gReplace the beginning of each line by hello
:%s/$/Harry/gReplace the end of each line by Harry
:%s/onward/forward/giReplace onward with forward, case insensitive
xDelete character
:%s/ *$//gDelete all white spaces and keep any non-blank character
:g/string/dDelete all lines containing string
:v/string/dDelete all lines not containing string
:s/Bill/Steve/Replace the first occurrence of Bill with Steve in current line
:s/Bill/Steve/gReplace Bill with Steve in current line
:%s/Bill/Steve/gReplace Bill with Steve in all of the file
:%s/^M//gDelete DOS carriage returns (^M)
:%s/r/r/gTransform DOS carriage returns in returns
:%s#<[^>]+>##gDelete HTML tags but keep text
:%s/^(.*)n1$/1/Delete lines that appear twice
Ctrl+aIncrement number under the cursor
Ctrl+xDecrement number under cursor
ggVGg?Change text to Rot13

Case

Vim provides very interesting commands to deal with case. Let’s continue to explore our Vim Cheat Sheet with super useful case-related commands.
VuLowercase line
VUUppercase line
g~~Invert case
vEUSwitch word to uppercase
vE~Modify word case
ggguGSet all text to lowercase
gggUGSet all text to uppercase
:set ignorecaseIgnore case in searches
:set smartcaseIgnore case in searches except if an uppercase letter is used
:%s/<./u&/gSets the first letter of each word to uppercase
:%s/<./l&/gSets the first non-blank character of each word to lowercase
:%s/.*/u&Sets the first character of the line to uppercase
:%s/.*/l&Sets the first character of the line to lowercase
Cheat

Read and Write Files

Vim allows easy manipulation of files. Listed below are a few examples of file manipulation with Vim.
:1,10 w outfileSave lines 1 to 10 in outfile
:1,10 w >> outfileAppend lines 1 to 10 to outfile
:r infileInsert the content of infile
:23r infileInsert the content of infile under line 23

File Explorer

Vim features a built-in file explorer that allows its users to quickly visualize and open files in the editor.
:e .Open integrated file explorer
:SexSplit window and open integrated file explorer
:Sex!Same as :Sex but splits window vertically
:browse eGraphical file explorer
:lsList buffers
:cd ..Move to parent directory
:argsList files
:args *.phpOpen file list
:grep expression *.phpReturn a list of .php files contening expression
gfOpen file name under cursor

Interacting With Unix

CheatAs Vi and Vim were initially built for Unix systems, the text editor can interact with the OS.
:!pwdExecute the pwd Unix command, then return to Vi
!!pwdExecute the pwd unix command and insert output in file
:shTemporary return to Unix
$exitReturn to Vi

Alignment

Using Vim, it’s possible to automatically align lines using a few simple commands. Here are the main important ones:
:%!fmtAlign all lines
!}fmtAlign all lines at the current position
5!!fmtAlign the next 5 lines

Tabs and Windows

Vim can use various tabs and windows, which is very useful for working with many files at once.
:tabnewCreate/Open a new tab
gtShow next tab
:tabfirstShow first tab
:tablastShow last tab
:tabm n(position)Rearrange tabs
:tabdo %s/foo/bar/gExecute a command in all tabs
:tab ballPuts all open files in tabs (Each in a new tab)
:new abc.txtEdit abc.txt in new window

Window Spliting

As a web developer, I always like to split my Vim editor in two parts, one for my HTML and one for my CSS stylesheet. This part of our Vim Cheat Sheet describes how to split the main editor window.
:e filenameEdit filename in current window
:split filenameSplit the window and open filename
ctrl-w up arrowPut cursor in top window
ctrl-w ctrl-wPut cursor in next window
ctrl-w_Maximize current window vertically
ctrl-w|Maximize current window horizontally
ctrl-w=Gives the same size to all windows
10 ctrl-w+Add 10 lines to current window
:vsplit fileSplit window vertically
:sview fileSame as :split in Read Only Mode
:hideClose current window
:­nlyClose all windows, except current
:b 2Open #2 in this window

Auto Completion

Like much more modern editors, Vim can auto-complete your code and use dictionaries.

Vim Commands Mac Cheat Sheet

Ctrl+N Ctrl+P (in insert mode)Complete word
Ctrl+x Ctrl+lComplete line
:set dictionary=dictDefine dict as a dictionary
Ctrl+x Ctrl+kComplete with dictionary

Markers

Vim allows its users to set marks at a position of their choice, so they can easily jump back to that predefined position. A must when working with large files.
m {a-z}Marks current position as {a-z}
‘ {a-z}Move to position {a-z}
Move to previous position

Vim Visual Cheat Sheet

Abbreviations

Another handy Vim function is the possibility to define abbreviations.
:ab mail mail@provider.orgDefine mail as abbreviation of mail@provider.org

Text Indent

Printable Vim Cheat Sheet Pdf

Indentation is the key to readable and easy-to-maintain code. Vim possesses a few commands that will come in handy for indenting any file.

Vim Cheat Sheet Mac And Cheese

:set autoindentTurn on auto-indent
:set smartindentTurn on intelligent auto-indent
:set shiftwidth=4Define 4 spaces as indent size
ctrl-t, ctrl-dIndent/un-indent in insert mode
>>Indent
<<Un-indent
=%Indent the code between parenthesis
1GVG=Indent the whole file

Syntax Highlighting

Syntax highlighting is often very useful for preventing coding mistakes and typos. Vim can work with many different syntax highlighting modes, depending on which programming language you are coding with.
:syntax onTurn on syntax highlighting
:syntax offTurn off syntax highlighting
:set syntax=perlForce syntax highlighting
Learn Vim from scratch and quickly become more productive.
Design, develop, and deploy end-to-end applications with Vim.