“Find next” in Vim

前端 未结 7 1536
野性不改
野性不改 2021-01-29 17:10

To search forward in Vim for cake, I\'d type /cake, but the cursor jumps to the first match when I press return. Is there a Vim command analogo

相关标签:
7条回答
  • 2021-01-29 17:32

    As discussed, there are several ways to search:

    /pattern
    ?pattern
    * (and g*, which I sometimes use in macros)
    # (and g#)
    

    plus, navigating prev/next with N and n.

    You can also edit/recall your search history by pulling up the search prompt with / and then cycle with C-p/C-n. Even more useful is q/, which takes you to a window where you can navigate the search history.

    Also for consideration is the all-important 'hlsearch' (type :hls to enable). This makes it much easier to find multiple instances of your pattern. You might even want make your matches extra bright with something like:

    hi Search ctermfg=yellow ctermbg=red guifg=...
    

    But then you might go crazy with constant yellow matches all over your screen. So you’ll often find yourself using :noh. This is so common that a mapping is in order:

    nmap <leader>z :noh<CR>
    

    I easily remember this one as z since I used to constantly type /zz<CR> (which is a fast-to-type uncommon occurrence) to clear my highlighting. But the :noh mapping is way better.

    0 讨论(0)
  • 2021-01-29 17:38

    The most useful shortcut in Vim, IMHO, is the * key.

    Put the cursor on a word and hit the * key and you will jump to the next instance of that word.

    The # key does the same, but it jumps to the previous instance of the word.

    It is truly a time saver.

    0 讨论(0)
  • 2021-01-29 17:38

    When I was beginning I needed to watch a demo.

    How to search in Vim

    1. type /
    2. type search term e.g. "var"
    3. press enter
    4. for next instance press n (for previous N)
    0 讨论(0)
  • 2021-01-29 17:45

    If you press Ctrl + Enter after you press something like "/wordforsearch", then you can find the word "wordforsearch" in the current line. Then press n for the next match; press N for previous match.

    0 讨论(0)
  • 2021-01-29 17:46

    It is n for next and N for previous.

    And if you use reverse search with ? (for example, ?cake) instead of /, it is the other way round.

    If it is installed on your system, you should try to run vimtutor command from your terminal, which will start a tutorial of the basic Vim commands.

    Rob Wells advice about * and # is also very pertinent.

    0 讨论(0)
  • 2021-01-29 17:55

    Typing n will go to the next match.

    0 讨论(0)
提交回复
热议问题