Programming in vim I often go search for something, yank it, then go back to where I was, insert it, modify it.
The problem is that after I search and find, I need to MANUALLY find my way back to where I was.
Is there an automatic way to go back to where I was when I initiated my last search?
Ctrl+O takes me to the previous location. Don't know about location before the search.
Edit: Also, `. will take you to the last change you made.
Use ``
to jump back to the exact position you were in before you searched/jumped, or ''
to jump back to the start of the line you were on before you searched/jumped.
n
-ing to subsequent matches means you do not jump back to where you started.
g;
and g,
, it goes to the position of the previous/next change.
I've always done by it setting a mark.
In command-mode, press m[letter]. For example, ma sets a mark at the current line using a as the mark identifier. To get back to the mark press ' [letter]. For example, 'a takes you back to the line mark set in step 1. To get back to the column position of the row where you marked the line, use `a (back-tick [letter]).
To see all of the marks that currently set, type :marks
.
On a slightly unrelated note, I just discovered another nifty thing about marks.
Let's say you jump to mark b by doing mb. Vim automatically sets the mark ' (that's a single-quote) to be whichever line you were on before jumping to mark b.
That means you can do 'b to jump to that mark, then do '' (2 single-quotes) to jump back to wherever you were before.
I discovered this accidentally using the :marks
command, which shows a list of all marks.
You really should read :help jumplist
it explains all of this very well.
CTRL+O and CTRL+I, for jumping back and forward.
I use this one:
nnoremap / ms/
nnoremap ? ms?
Then if I search something by using /
or ?
, I can go back quickly by `s
. You could replace the letter s
to any letter you like.
m
is defined to be something other than mark, in the case of NerdTree it is menu.
The simplest way is to set a mark, with m[letter]
, then go back to it with '[letter]
Success story sharing
:70
and then:100
, pressingctrl+o
once goes back to the original location, not line 70. :(