Hacker News new | ask | show | jobs
by vsbuffalo 4936 days ago
I'm very curious about this. I've had the opposite experience: I was a slow Vim users (but stil, Vim lover), and I switched to emacs to use ESS-mode for R. Soon I realized the core movement operations I clumsily had to switch modes for in Vim were the same in bash (by default configuration) as they were in Emacs. Even textboxes in OS X behave somewhat same way. C-a, C-e, C-k, C-y M-b, M-f, are all the same for example. So is searching (C-r, C-s). I was fast at these in bash, so learning them in emacs was a breeze. So, how do you use bash? Do you use these bindings?
2 comments

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.
* 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
bash and anything else which uses readline offers a vi support mode [1]. Other shells, like zsh, allow you to use vi bindings as well [2].

[1]: http://blog.sanctum.geek.nz/vi-mode-in-bash/ [2]: http://zshwiki.org/home/zle/emacsandvikeys