4 ms·
Ask HN: What is your favorite lesser known VIM shortcut you can share
:earlier 10m → Moves your buffer state 10 minutes earlier.
:later 5m → Moves your buffer state 5 minutes later.
Why it's helpful:
It acts like a time machine for your edits! If you regret changes but don’t want to undo manually, you can jump back in time.
You can also use it with changes, e.g., :earlier 5c (5 changes earlier).
- pizza 2y agonot a shortcut but still tremendously useful when I need it: # open some files in vertical splits > ls $FILES | nvim -O # -o does horizontal splits
- riddley 2y agonvim -o $FILES
- croo 2y agoI never know what is lesser known but my faviourite is: * searches for the word under the cursor, # searches backwards. You can also use n for next and N for previous hit.
- riddley 2y agoWhen I'm showing people the power of vim, I often use the `i` verb, like `ci"` and how it's not a "shortcut" but instead a sentence: change in quotes. If you start thinking about vim as a language instead of a collection of things to memorize, it becomes much easier, IMO.
- scrapheap 2y agoFavorite is hard, but if you use vim and don't know that `.` repeats the last change then you're missing out. It's really useful for those times where you need to make the same change in lots of places in a file, but not everywhere.
- zeke 2y ago:Lexplore opens a split window with a directory listing you can navigate. :33Lexplore opens the split with a slimmer, 33% width, window. :Lex<tab> to autocomplete if you do not want to type as much.
- tmaly 2y agosometimes when I copy data into a file, I get some blank lines depending on how the data was formatted. This can often happen when copying from websites. I find this shortcut useful to delete all blank lines in a file :g/^$/d
- btschaegg 2y agoTo add to this, I would say :g in combination with :norm would be my choice. Edit: Oh, also, since vim ships with xxd: xxd -r -p is a very useful thing to know.
- kkoncevicius 2y agoMaybe one lesser known is changing to visual mode within operation. A few examples (^ marks the cursor): one two three ^ 'db' would leave letter "e" behind. But 'dvb' would include the "e" as well. Another example, say we want to delete from "two" to "five". one two ^ three four five six 'd/five' would leave a "t" as well as "five", but 'dV/five' would delete all necessary lines. This helps targeting lines without using relative line numbers.