≡ Menu

vim text editor

Linux / Unix vi / vim: Open and Switch Between Multiple Files

I am new to Linux sysadmin work. I am using vi / vim text editor to edit files located in /etc/ directory. I open files using

vi /etc/resolv.conf /etc/hosts

I can edit the /etc/resolv.conf file only. How do I switch between the two open files while using vim text editor under Linux / BSD / Apple OS X / Unix like operating systems?
[click to continue…]

VI / VIM: Open File And Go To Specific Function or Line Number

How do I open a text file using VIM or VI and go to specific line? How do I open a file using vim and go to specific function() in my source code?
[click to continue…]

HowTo: Save File in Vi / Vim Text Editor

I‘m new to Linux or UNIX like operating system. I just wanted to create a file called demo.txt and save & close it using vi text editor. How do I save a file using vi?
[click to continue…]

Edit a File When You Are Viewing It Using more / less Command Pager

I can use less or more pagers to view a file. How do I start an editor (such as vi or other text editor) to edit the current file without leaving the less or more pager command?
[click to continue…]

Vim Editing Multiple Files and Windowing Support Under Linux / UNIX

How do I open and edit multiple files on a VIM text editor running under Ubuntu Linux / UNIX-like operating systems to improve my productivity?
[click to continue…]

How do I Be More Productive In Vim?

This is a user contributed FAQ.

Q. I’m just starting in vim text editor but I’m annoying typing and retyping similar statements. Can you address me about it?
[click to continue…]

Moving Around With vim (keyboard short cuts)

This is a user contributed FAQ.

Q. Can you tell me few useful vim text editor keyboard short cuts for moving around while editing text files?
[click to continue…]

How To Show Line Numbers In vi / vim Text Editor

How do I display vi / vim text editor line numbers while writing a shell script or c program? How can I turn on or off this feature on Linux, Apple OS X, or Unix-like operating systems?
[click to continue…]

VI / Vim Print Line Numbers on Hardcopies / Printer

How do I print line numbers on the printer for my c / java / c++ code written using vi or vim text editor under Linux / UNIX like operating system?
[click to continue…]

UNIX / Linux: vi / vim perform search and replace operation

Q. I’ve just installed CentOS Linux server and started to use vi text editor to make changes to config files. How do I perform search and replace operation using vi / vim text editor?

A. vi (vim) is not difficult to learn, the vi editor is well known and used for both writing code and editing config files.

VI search and replace command format

Simple format is as follows:
%s/old-string/new-string/

VI search and replace command examples

Let us say you would like to find a word called “foo” and replace with “bar”.

First hit [Esc] key

Type : (colon) followed by %s/foo/bar/ and hit [Enter] key.
:%s/foo/bar/
Above command will replace first occurrence of word foo with bar on all lines. The % is shorthand for all lines.

To replace all occurrences of word foo with bar on all lines, use the g option (which indicates all occurrences on a line).
:%s/foo/bar/g

Note that the g can be replaced with a number 1,2,…N to change only the n’th occurrence on each line.

Use find and replace on line ranges (match by line numbers)

You can also make changes on range of lines i.e. replace first occurrence of foo with bar on lines 5 through 20 only, enter:
:5,20s/foo/bar/

Following command will replace first occurrence of foo with bar starting at the current line for the next 100 lines:
:.,+100s/foo/bar/

Match by words

Finally, you can match by words i.e. replace first occurrence of foo with bar starting at at the next line containing a word “test”:
:/test/s/foo/bar/g
As usual you can specify ranges:
:/test/,/guest/s/foo/bar/g

Please note that all search/replace commands should be start with the [ESC]: keystroke combination only.