How to Edit Using Vi in Linux
Editing files in Linux can seem tricky if you’re new to the command line. But once you get the hang of Vi, one of the most powerful text editors, you’ll find it’s a great tool for quick and efficient editing. Whether you want to modify configuration files or write scripts, Vi is available on almost every Linux system by default.
In this guide, I’ll walk you through how to edit using Vi in Linux. You’ll learn about its modes, basic commands, and some handy tips to make your editing smoother. By the end, you’ll feel confident opening, editing, and saving files with Vi.
Understanding Vi and Its Modes
Vi is a modal text editor, which means it operates in different modes. This is different from most editors you might have used before. Knowing these modes is key to using Vi effectively.
- Normal Mode: This is the default mode when you open Vi. You can navigate through the file and issue commands here.
- Insert Mode: This mode lets you insert or edit text. You switch to it from Normal mode.
- Command Mode: Also called Ex mode, this is where you enter commands like saving or quitting.
To switch between modes:
- Press
ito enter Insert mode from Normal mode. - Press
Escto return to Normal mode from Insert or Command mode. - Type
:in Normal mode to enter Command mode.
Opening and Navigating Files in Vi
To start editing, you first need to open a file with Vi. Use the terminal and type:
vi filename
Replace filename with your actual file name. If the file doesn’t exist, Vi will create it when you save.
Once inside Vi, you’ll be in Normal mode. Here’s how to move around:
- Use arrow keys or
h(left),j(down),k(up),l(right). ggmoves to the beginning of the file.Gmoves to the end of the file.Ctrl + dscrolls down half a page.Ctrl + uscrolls up half a page.
These navigation commands help you quickly find the part of the file you want to edit.
Basic Editing Commands in Vi
After navigating to the right spot, you’ll want to edit the text. Here’s how to do that:
- Press
ito enter Insert mode and start typing. - Press
Escto go back to Normal mode when done. - To delete a character, place the cursor on it and press
x. - To delete a whole line, press
dd. - To undo the last change, press
u. - To redo an undone change, press
Ctrl + r.
You can also copy and paste lines:
yycopies (yanks) the current line.ppastes the copied line below the cursor.Ppastes above the cursor.
These commands let you quickly modify text without leaving the keyboard.
Saving and Exiting Vi
Once you finish editing, you’ll want to save your changes and exit. This is done in Command mode:
- Type
:wand press Enter to save without quitting. - Type
:qand press Enter to quit if no changes were made. - Type
:wqor:xand press Enter to save and quit. - Type
:q!and press Enter to quit without saving changes.
These commands give you control over when and how you save your work.
Advanced Editing Tips for Vi Users
Once you’re comfortable with the basics, these tips can speed up your editing:
- Use
:set numberto show line numbers, helpful for coding. - Use
/textto search for “text” in the file. Pressnto go to the next match. - Use
:%s/old/new/gto replace all instances of “old” with “new” in the file. - Use visual mode by pressing
vto select text, then apply commands likedto delete oryto copy. - Use
.(dot) to repeat the last command, saving time on repetitive edits.
These features make Vi a powerful editor once you learn them.
Customizing Vi for a Better Experience
Vi can be customized to suit your preferences. You can create or edit a .vimrc file in your home directory to add settings like:
syntax onto enable syntax highlighting.set tabstop=4to set tab width.set autoindentto keep indentation consistent.set ignorecaseto make searches case-insensitive.
Customizing Vi helps you work faster and reduces errors.
Troubleshooting Common Vi Issues
Sometimes, you might get stuck or confused in Vi. Here are quick fixes:
- If you can’t type, press
Escto return to Normal mode. - If you accidentally enter Command mode, press
Escto exit. - If you want to quit but can’t, use
:q!to force quit without saving. - If you want to save but get an error, check file permissions or use
sudo vi filename.
Knowing these tricks prevents frustration and keeps your workflow smooth.
Why Learn Vi in 2026?
Even with many modern editors available, Vi remains popular because:
- It’s installed by default on almost all Linux systems.
- It’s lightweight and fast, perfect for remote servers.
- It works well over slow connections.
- It has a steep learning curve but pays off with efficiency.
Learning Vi is a valuable skill for any Linux user or system administrator.
Conclusion
Editing files using Vi in Linux might seem intimidating at first, but once you understand its modes and basic commands, it becomes a powerful tool. You can open files, navigate quickly, edit text, save changes, and customize your experience with ease.
By practicing the commands and tips shared here, you’ll gain confidence and speed in using Vi. Whether you’re managing servers or writing code, Vi is a reliable editor that will serve you well in your Linux journey.
FAQs
How do I switch from Normal mode to Insert mode in Vi?
Press i while in Normal mode to enter Insert mode. This lets you start typing and editing text.
How can I save changes without quitting Vi?
Type :w and press Enter in Command mode to save your changes without exiting the editor.
What command deletes an entire line in Vi?
Press dd in Normal mode to delete the current line where the cursor is located.
How do I undo the last change in Vi?
Press u in Normal mode to undo the most recent change you made.
Can I search for text inside a file using Vi?
Yes, type / followed by the text you want to find, then press Enter. Use n to jump to the next match.
