How to find a Word in Vim or vi text editor

I am a new Linux and Unix-like operating system user. How do search and find words in Vi Vim? How can I find a Word in Vim or vi text editor?

Introduction: Vi and vim is a text editor for Linux, macOS, Unix, and *BSD family of operating systems. Vim is a free and open source text editor. One can search using various vi text editor keys. This page shows how to search and find words in vi or vim text editor running on a Linux or Unix-like systems.
Tutorial requirements
Operating system/appvim or vi text editor
Root privileges required No
Difficulty Easy (rss)
Estimated completion time 5m
Table of contents

ADVERTISEMENTS

Find a word in Vim or vi text editor

To search using Vim/vi, for the current word:

  1. In normal mode, you can search forward or backward.
  2. One can search forward in vim/vi by pressing / and then typing your search pattern/word.
  3. To search backward in vi/vim by pressing ? and then typing your search pattern/word.
  4. Once word found in vim, you can press the n key to go directly to the next occurrence of the word in backwards. Press the N key to go directly to the opposite direction, i.e. forwards.

Let us see some examples.

Searching for words in vim/vi

Let us open a file named /etc/passwd:
$ vi /etc/passwd
OR
$ vim /etc/passwd
Search for a word named “vivek” in forward direction:

  • Press ESC key
  • Type /vivek
  • Hit n to search forwards for the next occurrence of word named “vivek”. You can press N to search backwards.
Linux Unix macOS find a Word in Vim or vi text editor

Demo of finding a word in Vi/Vim

How to search for a word in backwards in vim/vi

Let us open a file named demo.txt in the current directory:
$ vi demo.txt
OR
$ vim demo.txt
Search for a word named “bar” in backwards direction:

  • Press ESC key
  • Type ?bar
  • Hit N to search backwards for the next occurrence of word named “bar”. You can press n to search forwards.

How to search for the current word

Say you have a file named data.txt as follows displayed using the cat command:
$ cat data.txt
Sample outputs:

192.168.2.254 - default router
192.168.2.253 - wifi        
192.168.2.252 - wifi bridge 
192.168.2.254 - dns server
192.168.2.30  - backup server
192.168.2.254 - firewall
192.168.2.18  - vm server
192.168.2.203 - RHEL7
192.168.2.254 - dhcp server
192.168.2.200 - SUSE server
192.168.2.201 - FreeBSD nfs server

In normal mode, move the cursor to any word say 254. Press * to search forwards for the next occurrence of word 254, or press # to search backwards:

Searching in vim

Gif 01: Searching in vim for the current word demo

Search and open file from the CLI

The vi / vim text editor supports running any : command using the following syntax:
vi +commandHere fileName
vim +LineNumber fileName
vi +/searchTermHere fileName
vi +/LineNumberHere fileName
vim +/LineNumberHere fileName

To open file and go to function called main(), enter:
$ vim +/main filename-here
Next open file and go to line number 42, enter:
$ vim +42 fileName
See “VI / VIM: Open File And Go To Specific Function or Line Number” for more info.

How to search for whole word in vim / vi

We can search for a whole word in VIM using the following syntax:

/\<WORD-TO-SEARCH\>
# search for foo word 
/\<FOO\>
# search for FreeBSD word
/\<FreeBSD\>
# Case sensitive vs insensitive search done by adding the \C or \c #
/\<FreeBSD\>      " Case sensitive
/\<FreeBSD\>\C    " Case sensitive
/\<FreeBSD\>\c    " Case insensitive

Case insensitive search in Vim

We can also do case insensitive search in Vim using the following two config options. For example, ignore case in search patterns, type:
:set ignorecase
Now search it to match Foo, foo, FOO and so on:
/foo
Another option is to override the ‘ignorecase’ option if the search pattern contains upper case characters.
:set smartcase "
Please note that the ‘ignorecase’ also applies to search and replace option under vim.
Getting help is easy for search commands. All you need to do is type the following commands:
:help /\c
:help /\C
:help 'ignorecase'
:help 'smartcase'

Conclusion

This page shows how to search using Vim or vi text editor for the word, including the use of the super star (*) to search for the current word. See vim help page for more info here.

🐧 If you liked this page, please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
1 comment… add one
  • SmartAboutVim Feb 13, 2013 @ 17:42

    Unix is a versatile OS and vi is massive but very fast. Worked great over ssh too.

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.