Hacker News new | ask | show | jobs
by henrik_w 4936 days ago
C-r is very handy in bash. On the subject of search - I recently switch from Emacs to Vim, just to try something new. It's working out well, but so far I have not found an equivalent for C-s <some letters> C-w C-s(C-w to grab the current word, C-s again searches for the next apperance of it). This is still the best way to search incrementally that I have found in any editor. Any tips on how to do the same thing in Vim (with as few key-strokes as possible) are appreciated.
1 comments

* in edit mode is what you want - http://vimdoc.sourceforge.net/htmldoc/pattern.html#star - though it's not quite the same, as it will search left and right for the word boundary.

(emacs is actually a bit unwieldy by comparison - * was one of the things I missed when I left vim. I was also used to using this same functionality in Visual Studio and Scite (it's Ctrl+F3), so it was well embedded into my workflow.)

Thanks. Yes, * is good, but only if you already are at the word you want to search for. When that's not the case, in Emacs I hit C-s, typed the first few letters, found the word, grabbed it with C-w, then hit C-s repeatedly. In Vim, I haven't found quite the same convenient way. I have been getting out of incremental search, then used *, but it's a few more key strokes, especially if the first hit is not the word I'm looking for.
Use n to go to next occurence of your search pattern and N to go the other way.
Yes, but I have to hit enter first. And, having hit n a couple of times, I haven't found a way to easily add more letters to the search pattern (but I am pretty new to Vim). Also, I (believe) I need to escape out of search mode if I want to use * if I found the word I was looking for and want to find more occurrences of it.
You can use <C-r><C-w> to insert the word under the cursor in the command-line. You can use <C-r>/ t oinsert the latest search pattern. You can use <C-w> to delete the word on the left or <C-u> to delete everything you already entered. You can use // and ?? to reuse the latest pattern.
Isn't '/' in Vim able to search incrementally? It does in evil-mode in Emacs.
Not by default, put

    set incsearch 
in your ~/.vimrc