When you do a project-wide search in Vim, you probably use something like ack.vim or git-grep-vim. Those plugins make use of the Vim quickfix list – a split window that shows each matching line.

There are some useful commands to navigate the quickfix list.

You probably already know that you can use :cn (or :cnext ) to jump to the next result and :cp (or :cprevious ) to jump to the previous result.

Maybe you even know about :cnf ( :cnfile ) and :cpf ( :cpfile ) to jump to the next or previous file with a result.

But my favorite quickfix list command is :cold ( :colder ).

Say you project-search for "foo" to look into an issue. You hit :cn a few times.

But then you realize the rabbit hole runs deeper. What's that "bar" doing there?

So you project-search for "bar" and navigate that quickfix list for a while.

Now you want to get back to "foo".

You could search for "foo" again… or you could run :cold .

:cold jumps back to the last (older) list. It even remembers which item in the list you were on.

This effectively gives you a stack of project searches. You can make searches within searches and then jump back to previous ones.