No matter whether youre a sysadmin by profession or just an old school tech enthusiast like me, if you ever find yourself in love with the awe-inspiring Unix OS, chances are youre gonna feel the need for a versatile terminal-based Linux text editor at one point or another. For todays guide, well keep our focus on Vim, considered the best by many, if not all, as the best Linux code editor ever.

VIM Commands
Below are useful Vim commands that will come in handy during your time with Vim. As were aiming mainly at beginner Vim users, dont get daunted all you seasoned Vim masters. This guide will enhance the Vim experience of new users and prove to be a valuable reference to more mature users.

Linux Command Cheat Sheet for Exploring the Vim Modes

Before delving directly into the commands this guide is meant for, we want to draw your attention to Vim modes. Vim features two distinct modes, a command mode and an insert mode.

When you open Vim for the first time, you’re in the command mode. The command mode lets you navigate the screen, delete and copy text, among many others. The insert mode, on the other hand, as implied, lets users insert text into Vim’s console. You can use the ESC key to switch back to the command mode after finishing typing.

  • i

Pressing i in the console gets you to the insert mode. Now you can start typing your texts inside Vim. The text you type will appear in front of the cursor key.

  • a

Its among another commonly used Vim commands you can use to insert text. The texts will be appended right after the cursor.

  • I

Want to place your texts at the beginning of the current line? The l command lets you insert text right at your desired location.

  • A

This is one of my favorite Vim commands to append text at the end of my current line. It also falls under those Vim commands used for inserting text.

  • o

Pressing the lowercase o creates a new line just after the current line youre in.

  • O

The uppercase variant creates the new line before the current line.

  • gf

You can use this handy little command to open your files under the cursor.

  • gi

One of my most favorite Vim commands, gi restarts the insert mode in the last insert point you used.

  • wq

Typing in long strings of text doesnt matter if you cant save them for future usage. Enter the wq command in the command mode to save your file and exit Vim.

  • q!

Youll often find yourself in a position where youre not satisfied with the texts you have typed and would like to close the editor without saving your content. Entering q! in the command mode lets you do exactly so.

Vim Commands for Moving Around The Console

One of the foremost reasons behind Vims ultra-fast user experience is its fast movement features. Vim features and supports numerous convenient Vim commands to make your life in front of the terminal blazing fast. Below are some of the most useful Vim commands for faster navigation.

  • h

Use the h command to navigate to the left side of your Vim console. This is analogous to the left arrow of your keyboard.

  • l

The l commands help you navigate to the right and is a substitute for the right arrow key.

  • k

Use the lowercase k command to move upwards. Similar to the arrow up key.

  • j

The j command takes you to downward and is a substitute for the down arrow key.

The h j k l keys help you move across the screen much faster than the standard arrow keys. Prefix them with a number to get the most out of these Vim commands. So, for going down ten lines, instead of holding the key for a prolonged period of time, just type 10j. Mastering these passive Vim commands for navigation will enhance your productivity much faster.

  • H

This command takes the cursor at the topmost region of your screen.

  • M

It will put the cursor in the middle of your Vim screen.

  • L

The capital L puts the cursor at the end of the screen.

The H M L Vim commands come in handy whenever you want to get to an approximate portion of your console screen.

  • 0 or <HOME>

Entering either 0 or the <HOME> button will take you to the start of the line.

  • ^

This is among the most commonly used Vim commands to get to the first non-blank character in a line.

  • $

This command will take the cursor at the end of the current line.

  • b

The lowercase b command lets you move back by tokens.

  • w

This command helps you move forward by tokens.

  • B

The uppercase variant of b lets you move back by words.

  • W

This command will let you move forward by words.

A token is any sequence of digits, letters, or underscores, whereas a word is any non-blank sequence separated by whitespace.

  • ctrl+u

This Vim command is basically a Page Up command. However, it moves the screen by half and holds onto the current cursor position.

  • ctrl+d

The Page Down variant of the above command. Functions in the same way.

  • G

Prefix the G command with a number to jump directly to a specific line number. Suppose, if you have line numbering enabled and are writing a shell script, you can go to the 10th line by merely typing 10G.

  • #

Given, # is the number of a specific line, entering this command will take you to that line directly. Its one of the most used Vim commands to jump from line to line.

  • “

This command (two back ticks) takes you wherever you just were.

  • )

You can go-to at the start of the following sentence with this command.

  • (

Go-to at the beginning of the earlier sentence.

  • }

Used for going to the beginning of the next text block.

  • {

Takes cursor at the beginning of the previous text block.

Vim Commands for Editing Texts

Vim combines many powerful yet flexible editing features that let users edit their documents seamlessly while paving the path to a versatile workflow. The power of Vim comes from the fact that you can combine many of such Vim commands to solve your custom needs. This section of the guide covers some elementary Vim commands used in everyday text editing. Continue reading to find out more useful Vim commands for editing.

  • yy

The yy command lets you copy an entire line. Its something youll often employ during your time with Vim.

  • yw

This is one of the most widely used Vim commands for copying a word across the editor.

  • y$

One of my all-time favorite Vim commands, it gives users the ability to copy texts from the current position of the cursor to the end of a line.

  • v

The v command can be used to highlight a single character at a time in combination with the movement keys (arrows/ h j k l).

  • V

Almost the same as the above one, but instead of a word, this command will highlight an entire line.

  • p

You can paste the contents of your clipboard to the unnamed register with this handy little command.

  • d

This is among the most used Vim commands for deleting highlighted texts.

  • dd

Want to delete an entire line with a single Vim command? The dd command is specially created for this purpose.

  • dw

You can delete a single word pretty quickly with the dw command.

  • D

One of the most powerful Vim commands ever, the D command deletes everything from the current cursor location to the end of the line.

  • d0

This command is used for deleting everything from your cursors current position to the beginning of the line.

  • dgg

You can use this command to delete everything from your cursors current position to the beginning of the file.

  • dG

This command will wipe out everything from your cursors current position to the end of the file.

  • x

Use the x command whenever you need to delete a single character.

  • u

The u command is among the most widely used Vim commands for many to undo the last operation. Combining with a postfix allows users to undo multiple actions. So, u# undos the last # number of actions.

  • ctrl+r

Use the above command to redo the last undo operation.

  • .

The dot (.) command is one of those useful Vim commands that significantly decrease your workload by repeating the last action whenever you need such functionality.

  • cc

You can use the cc command to change line(s) by clearing and entering the insert mode simultaneously. The cursor is placed at the current level of indentation.

Useful Vim Commands for Replacing Texts

Apart from the generic command and insert modes, Vim has another mode called the visual mode. You can highlight and change a particular portion of your text document in this mode. But wheres the fun in that, huh? Using a select set of Vim commands can achieve you the same result, just a bit faster. Below are some of my favorite Vim commands for changing texts on the fly.

  • r

The r command is a pretty handy tool when it comes to changing a single character. Follow it with <char>, and it will change the current character under the cursor with <char>.

  • R

The capital R opens the insert mode, but you can replace them with this command instead of inserting texts.

  • ~

The tilda(~) command is pretty useful when you need to change the case of a character in your document. Follow it with a number to flip that many characters.

  • t<char>

Enter t<char> to select up to but not including the next <char> on a particular line.

  • f<char>

Press f<char> to select up to and including the next <char> on a line.

  • i<char>

Want to select everything in between a set of parentheses or some other unique character? Type i<char> to select everything that sits between two consecutive <char>.

  • a<char>

This command is identical to the previous one but includes the <char> at both ends of the text.

Most Used Vim Commands for Searching Through A Document

The searching functionality is of greater importance to any versatile Linux text editor. Vim offers exceptionally powerful commands for searching through a document. Its one of the most powerful areas of this innovative text editor. Glance over the below Vim commands to search through your document effectively.

  • /

The slash command is the single most used command for searching through huge text files in Vim. Just type / and follow it with the texts you want Vim to search for you and look out at the consoles bottom corner.

  • /\c

The \c option, when piped to the search (/) command, lets users search for texts in a case sensitive manner. Wise utilization of this command can save hours of hard work.

  • ?<pattern>

This is among the most useful Vim commands for searching previous texts for a given <pattern>.

  • n

The n command searches in the direction of your last search. Use this command if you know in which direction your search item is.

  • N

Almost identical to the above command, but searches in the opposite direction of your last search.

  • :%s/[pattern]/[replacement]/g

The above command utilizes regular expression for searching every occurrence of [pattern] and replaces it with [replacement] without confirmation.

  • :%s/[pattern]/[replacement]/gc

Same as the previous command, but asks for confirmation before replacing each instance of [pattern] with [replacement].

  • :s/[pattern]/[replacement]/g

Instead of replacing every single instance of [pattern] on your file, this Vim command will replace only those [pattern] that are in the current line with [replacement].

  • :bufdo /[pattern]

This is among those powerful Vim commands that let users search for [pattern] in every currently opened buffer. It will enhance your productivity and decrease search time significantly.

  • :g/string/d

This is among those useful Vim commands that will come in handy whenever you want to delete every line that contains string from your document.

Linux Command Cheat Sheet for Working With Multiple Files in Vim

Editing in the terminal is fun and alright. But, wheres the edge of terminal editors if you cant edit multiple files with them. Luckily, as an iconic text editor, Vim lets you work with multiple documents in a pretty neat way. The ability to split the screen when working with multiple files simultaneously is something Vim has been offering even before the concept of the split-screen became mainstream. Now, you should slowly start to realize why this legendary editor is hailed in such high regard.

  • :sp [filename]

Use this command to create a new file and split the console screen horizontally to show the two different buffers.

  • :vsp [filename]

The functionality of this Vim command is, in essence, identical to the above command, but instead of splitting the console horizontally, it splits the screen vertically.

  • :bn

This Vim command will switch your editor to the next buffer. Its among those few fundamental Vim commands without which you wont be able to work with multiple documents in Vim.

  • :bp

Identical to the earlier command, but switches to the previous buffer instead of going next.

  • :bd

Use this Vim command when closing a specific buffer. Make sure to save your data using appropriate Vim commands.

  • :ls

This is one of the handy Vim commands that will present users with a list of all open buffers.

  • ctrl+ws

If you want to split your Vim windows horizontally, then this is the command youre looking for.

  • ctrl+wv

Instead of splitting the windows horizontally, this Vim command will split it vertically.

  • ctrl+ww

Utilize this command to switch between multiple windows directly from the command mode.

  • ctrl+wq

You can use this handy Vim command to quit a particular window.

  • ctrl+wh

This command will move the location of your cursor to the left window.

  • ctrl+wl

Same as the previous command, but instead of moving the cursor left, this command will point to the right window.

  • ctrl+wj

Use this command whenever you want to move a window beneath your existing one.

  • ctrl+wk

Same as above, but takes the cursor to the window above the current one.

Useful Vim Commands When Working With Multiple Tabs

Vim offers a variety of Vim commands to open and navigate a plethora of tabs right from the terminal. You can use these useful Vim commands whenever you are working with multiple files simultaneously. We encourage new Vim users to glance over such commands as they will often come in handy after youve mastered the basic Vim commands and start to do heavyweight staff with it.

  • :tabnew

You can use the :tabnew command to create a new tab and work with some other document while not leaving the current file.

  • gt

The gt command will show you the next tab opened by you.

  • :tabfirst

The above command will show you the first tab youve got opened in a particular session.

  • :tablast

The previous command, but instead of showing the first tab, will show the last tab.

  • tabm n(position)

This powerful Vim command will come in handy whenever you feel the need to re-arrange your existing tabs.

  • tabdo %s/foo/bar/g

You can utilize the above command whenever you want to execute a command in every open tab at the same time.

  • :tab ball

This Vim command is one of my favorite Vim commands, and it puts each open files in tabs.

  • :new abc.txt

This is among those Vim commands that lets you open a new file named abc.txt in a new window without exiting the current document.

Miscellaneous Vim Commands

As Vim offers plenty of Vim commands, we cannot cover every one of them categorically. Thats why in this section, well overview some useful Vim commands that are used by veteran users for a wide array of purposes.

  • :w

Pressing this Vim command in the command mode saves your current document but does not exist in the existing session.

  • :q

This command will exit the current session without saving your changes. Note that you will see the E37 error if you have unsaved changes in your document. In such scenarios, you need to override this command and use q! instead.

  • :help [command]

The help command performs a search operation on the command youve typed and shown relevant information on the right in the console.

  • :e [file]

This command will open a file named [file] and create a new one if it doesnt exist in your filesystem already.

  • :w [filename]

Use this command to save your existing document directly into a new file named [filename].

  • :stop

Writing this command in the command mode will suspend your current Vim session. You can also do this by pressing ctrl+z at the same time.

  • :browse e

Use this command whenever you want to invoke the graphical file explorer from your Vim console.

  • :%!fmt

Writing this command will align each line of your current file.

  • !}fmt

Use this whenever you need to align all lines at the present position of your cursor.

  • :set autoindent

We use cookies to personalize and enhance your experience on our site. By using our site, you agree to our use of cookies.
  More information about cookies