Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim: Navigating to Previous and Next Buffers in Edit History

Tags:

vim

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.

like image 281
lassej Avatar asked Sep 14 '10 07:09

lassej


2 Answers

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.

like image 73
Ton van den Heuvel Avatar answered Nov 16 '22 01:11

Ton van den Heuvel


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

like image 41
Rick Avatar answered Nov 15 '22 23:11

Rick