With cscope integrated Vim, I can navigate back using the ctrl-T and see the current tag stack position using :tags . But how do I go forward in the stack? The only thing I could find from the man pages is to go to the function definition (like ctrl-])
-
@Kent I am not using ctags as-suck. I am using ctags. So :ta is not wirking – vpillai Jul 22 '13 at 09:19
3 Answers
You can also use Ctrl+I and Ctrl+O to move forwards and backwards respectively through the jump list. This works with tag commands since they count as jump movements.
So to:
- Jump to a tag: Ctrl+].
- Jump back: Ctrl+O.
- Jump to a tag again: Ctrl+I.

- 27,830
- 11
- 80
- 100

- 827
- 1
- 7
- 12
-
1That works in the jump list (and tag list as a side effect). But they are not exactly tag navigation. – vpillai Jul 22 '13 at 09:16
The tag stack is created by all your "jump to definition". Each time you do <C-]>
, the tag you jump to is added to the tag stack and you are able to use <C-t>
or :pop
to jump back to the previous tag in the tag stack or :tag
to go the other way. Both :tag
and :pop
take an optional count so :5pop
would go to the fifth previous tag.
See :help tagstack
.

- 186,200
- 21
- 280
- 313
Just adding this answer because I don't have the rep to edit or comment on the accepted answer, but <C-t>
actually corresponds to the :pop
command, not the :tag
command as was stated.
:pop
is for moving "backwards" in the tag stack (will result in 'at bottom of tag stack' message) and is the command with the default keybinding <C-t>
:tag
is for moving "forwards" in the tag stack (will result in 'at top of tag stack' message).
I am not aware of any keybinding for :tag like for moving backwards, so I have mapped (not ) to tag.
nnoremap <C-[> :tag<CR>

- 123
- 2
- 9