Search for text in vi or vim

Posted by Rex in UNIX

vi and vim have powerful searching capabilities because they bring to bear the richness of regular expressions.


To search for the next occurence of the text ‘maybe’ from the current cursor position, type:

/maybe

Search backward from the current position by using ? instead of / in the command.

Once you have searched for something, you can find the next occurrence by pressing n or the previous occurrence with N.

Searching in vi/vim is enhanced with regular expressions. For example, to find the next occurence of the text ‘Total’ that occurs at the beginning of a line, use:

/^Total

The Conversation

Follow the reactions below and share your own thoughts.

  • Boris

    And how do I unmark the text? It’s always highlighted..

    • I bet there is a slick way to do that, but I honestly don’t know that way. My technique is to search for something else that doesn’t exist in the file..

      /jkdsjklsd

      will do the trick. If someone else knows the guru way, please let us know! I’d love to know how, too.

      • Anonymous

        :nohl

        • Arturo

          dear god, thank you anonymous. ‘yank’ is erratic as f*ck when the search words are highlighted.

          • Arturo

            nevermind. maybe i need to restart terminal or something because yank and put are not adhering to any type of logic whatsoever.

          • gesty

            sometimes it has issues with where your cursors is compared to where you are working in the text.

  • Kevin

    the full command would be :no hlsearch which can be abbreviated to :nohls, set !hls, set nohls, set hlsearch!. And you can use set hls or set hlsearch to turn the highlighting back on.

  • Alex Hirzel

    The best way to disable highlighting without turning off searching is the following ex command:

    :let @/=””

    Map it to a keystroke!