lassej
lassej

Reputation: 6494

Vim: Navigating to Previous and Next Buffers in Edit History

When I edit multiple files I oftentimes want to go back and forth between the last edited files. I know about :bn(ext) and :bp(revious) to switch between buffers but they don't keep the history of the last used files. Instead they use the order in which the files were opened. E.g., if I opened the files in this order

A, B, C

an my navigation history would be

A, B, C, B

then :bprevious in the last buffer (B) would send me to A. Is there a command or plugin that would send me to C? I know of Ctrl-6, but this only switches between the last two buffers. I would like to go back and forth multiple buffers.

Upvotes: 20

Views: 5684

Answers (2)

Ton van den Heuvel
Ton van den Heuvel

Reputation: 10558

I have been wanting the same functionality for quite some time now as well. Your question inspired me to finally do something about it. Have a look at bufsurf, a small plugin that provides the required functionality. It provides the user with two commands:

:BufSurfBack 

to navigate backwards in history, and similarly:

:BufSurfForward

to navigate forwards in history. For each window or tab a separate navigation history is kept in memory. Please let me know if you experience any problems, I did not have the chance to test this extensively yet.

Upvotes: 20

Rick
Rick

Reputation: 16274

Check out the lustyjuggler buffer plugin. It's awesome for this. It keeps the buffers in last used order and maps them to the home row keys so you can very quickly go back/forth between them.

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

You can see it demoed toward the end of my most recent vim screencast were I go over buffers: http://lococast.net/archives/185

Upvotes: 5

Related Questions