BLOG POSTS
Vim Find and Replace on Linux: HowTo

Vim Find and Replace on Linux: HowTo

Vim is a powerful text editor that comes pre-installed on most Linux systems. It offers a wide range of features, including the ability to find and replace text within files. In this guide, we will explore various techniques for finding and replacing text using Vim on Linux.

1. Basic Find and Replace

To perform a basic find and replace operation in Vim, follow these steps:

  1. Open the file you want to edit in Vim by running the command vim filename.
  2. Enter command mode by pressing the : key.
  3. Type %s/search/replace/g and press Enter, where search is the text you want to find and replace is the text you want to replace it with. The g flag at the end ensures that all occurrences of the search term are replaced.
  4. Press Enter to execute the find and replace operation.
  5. Save the changes and exit Vim by typing :wq and pressing Enter.

For example, to replace all occurrences of the word “hello” with “world” in a file named example.txt, you would run the command:

%s/hello/world/g

2. Find and Replace with Confirmation

If you want to review and confirm each replacement individually, you can use the c flag in the find and replace command. This will prompt you to confirm or skip each replacement.

  1. Open the file you want to edit in Vim.
  2. Enter command mode by pressing :.
  3. Type %s/search/replace/gc and press Enter, where search is the text you want to find and replace is the text you want to replace it with.
  4. Review each occurrence and press y to confirm the replacement, n to skip it, or a to replace all remaining occurrences.
  5. Save the changes and exit Vim by typing :wq and pressing Enter.

3. Find and Replace in Specific Lines

If you only want to perform the find and replace operation on specific lines in a file, you can specify the line range in the command.

  1. Open the file you want to edit in Vim.
  2. Enter command mode by pressing :.
  3. Type start_line,end_line s/search/replace/g and press Enter, where start_line and end_line are the line numbers you want to limit the find and replace operation to.
  4. Save the changes and exit Vim by typing :wq and pressing Enter.

For example, to replace all occurrences of the word “hello” with “world” in lines 5 to 10 of a file named example.txt, you would run the command:

5,10s/hello/world/g

4. Find and Replace with Regular Expressions

Vim supports regular expressions for more complex find and replace operations. Here are some examples:

Pattern Description
^pattern Matches lines starting with pattern.
pattern$ Matches lines ending with pattern.
\d Matches any digit.
\w Matches any word character.
\s Matches any whitespace character.

To use regular expressions in Vim, enclose the search and replace patterns in forward slashes (/) and use the \v flag to enable very magic mode. For example, to replace all occurrences of “hello” or “world” with “vim” in a file named example.txt, you would run the command:

%s/\v(hello|world)/vim/g

5. Similar Commands

Here are some similar commands that can be used alongside find and replace in Vim:

  • :s/search/replace/g: Performs a find and replace operation on the current line.
  • :s/search/replace/gc: Performs a find and replace operation on the current line with confirmation.
  • :%s/search/replace/g: Performs a find and replace operation on the entire file.
  • :%s/search/replace/gc: Performs a find and replace operation on the entire file with confirmation.

6. Vim Scripts

Vim allows you to create custom scripts to automate repetitive tasks. Here is an example of a Vim script that performs a find and replace operation:

function! FindReplace()
  let search = input("Enter search term: ")
  let replace = input("Enter replacement: ")
  execute "%s/" . search . "/" . replace . "/g"
endfunction

command! -nargs=0 FindAndReplace call FindReplace()

To use this script, save it to a file (e.g., find_replace.vim) and load it in Vim by running the command :source find_replace.vim. You can then use the :FindAndReplace command to invoke the script and perform a find and replace operation.

With the help of these techniques, you can efficiently find and replace text within files using Vim on Linux. Whether you need to perform a basic find and replace or use regular expressions for more complex patterns, Vim provides a flexible and powerful solution.


This article incorporates information and material from various online sources. We acknowledge and appreciate the work of all original authors, publishers, and websites. While every effort has been made to appropriately credit the source material, any unintentional oversight or omission does not constitute a copyright infringement. All trademarks, logos, and images mentioned are the property of their respective owners. If you believe that any content used in this article infringes upon your copyright, please contact us immediately for review and prompt action.

This article is intended for informational and educational purposes only and does not infringe on the rights of the copyright owners. If any copyrighted material has been used without proper credit or in violation of copyright laws, it is unintentional and we will rectify it promptly upon notification. Please note that the republishing, redistribution, or reproduction of part or all of the contents in any form is prohibited without express written permission from the author and website owner. For permissions or further inquiries, please contact us.

Leave a reply

Your email address will not be published. Required fields are marked