Jumping back to a previously opened file in Vim

2020-06-30 09:07发布

While using Vim I'll sometimes want to look at a function definition or a struct definition, so I'll use C-] to jump to it. However, there are a few problems I run into. First off, I don't know how to jump back easily. It appears the previous file I was in closes and I'm now in the new one. Is there a way to jump back, or keep a stack of open files that I can pop back to or something?

Another thing I've noticed that when I have a change in the current file I need to save it because, like a mentioned a moment ago, my current file is being closed before the next one opens.

And sometimes I want to view my current code and my header at once. Is there a way open the tag definition in a split?

标签: vim split ctags
4条回答
干净又极端
2楼-- · 2020-06-30 09:14

Add

set hidden

to you vimrc. It'll allow you switch files without saving them. I think this is one of 'must have' options.

Use C-o to jump back to previous locations which were autosaved in a jumplist.

:h jumplist
查看更多
3楼-- · 2020-06-30 09:19

You might want to consider using a few vim extensions that make this even simpler.

lusty-juggler and lusty-explorer

http://www.vim.org/scripts/script.php?script_id=2050 http://www.vim.org/scripts/script.php?script_id=1890

These require that vim was built with +ruby.

% vim --version | grep +ruby

They're very useful for staying in vim and jumping between files.

查看更多
在下西门庆
4楼-- · 2020-06-30 09:20

To jump back from C-], use C-T. The :tags command shows the current stack.

Set the autowrite option to automatically save what you're doing before jumping to a new file.

Use C-W C-] to open the tag in a new window.

Finally, :help tags is the section in help that explains all this and more.

查看更多
姐就是有狂的资本
5楼-- · 2020-06-30 09:27

Another useful feature that comes handy is the uppercase marks. These marks are not local to a buffer and can be used to jump to them from across files. If you mark the line as say "A" using mA command before starting a long and arduous jumping around task, you can finally return back to the original position quickly by typing 'A or `A.

查看更多
登录 后发表回答