Vim: переход к предыдущему и следующему буферам в истории изменений
Когда я редактирую несколько файлов, я часто хочу идти туда и обратно между последними отредактированными файлами. Я знаю о: bn (ext) и: bp (revious) для переключения между буферами, но они не хранят историю последних использованных файлов. Вместо этого они используют порядок, в котором файлы были открыты. Например, если я открыл файлы в этом порядке
A, B, C
моя история навигации будет
A, B, C, B
то: bprevious в последнем буфере (B) отправит меня в A. Есть ли команда или плагин, который отправит меня на C? Я знаю Ctrl-6, но это только переключается между двумя последними буферами. Я хотел бы пойти туда и обратно по нескольким буферам.
Ответы
Ответ 1
Я тоже давно нуждаюсь в такой же функциональности. Ваш вопрос вдохновил меня, наконец, что-то сделать. Посмотрите bufsurf, небольшой плагин, который обеспечивает требуемую функциональность. Он предоставляет пользователю две команды:
:BufSurfBack
для перемещения назад в истории и аналогичным образом:
:BufSurfForward
для навигации вперед в истории. Для каждого окна или вкладки в памяти сохраняется отдельная история навигации. Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы, у меня не было возможности еще раз проверить это.
Ответ 2
Проверьте плагин буфера lustyjuggler. Это потрясающе для этого. Он сохраняет буферы в последнем использованном порядке и сопоставляет их с клавишами домашней строки, чтобы вы могли очень быстро вернуться/вперед между ними.
http://www.vim.org/scripts/script.php?script_id=2050
Вы можете видеть, что это демоверсия к концу моего последнего vim screencast: я перебираю буферы:
http://lococast.net/archives/185