Как создать отдельный список буферов для каждой вкладки в Vim?
Можно ли как-то "прикрепить" список буферов к конкретным вкладкам в Vim? В настоящее время я использую MiniBufferExplorer, который показывает все буферы в хороших вкладках. Его можно комбинировать, используя стандартные вкладки vim, но список буферов плагина содержит все буферы, и использование вкладок становится немного бесполезным. Вот пример того, что я хотел бы:
Вкладка A содержит список буферов:
- FiLea
- FILEB
- FileC
Вкладка B содержит список буферов:
- Поданный
- FileE
- FileF
В настоящее время у меня есть это:
Вкладка A содержит список буферов
- FiLea
- FILEB
- FileC
- Поданный
- FileE
- FileF
Вкладка B содержит список буферов:
- FiLea
- FILEB
- FileC
- Поданный
- FileE
- FileF
Говоря о "списке буферов", я имею в виду вкладку со списком, которую предоставляет плагин минибуфера.
Любое решение для достижения этой цели?
1 ответ
Я не могу вспомнить ни одного исследователя буфера, основанного на Tab, но vimscript имеет множество функций для отслеживания буферов (список функций) . Я просто выбил это из себя. Это может привести вас к тому, что вы хотите. Он просто отслеживает вкладки в словаре vim. Вам нужно будет добавить функцию:TabExplorer или исправить отфильтрованный список (например, g:TabExplorer[tabpagenr()]) в плагин минибуфа.
Сохраните его как ~/.vim/plugin/tabexplorer.vim и загрузите его при запуске.
let g:TabExplorer = {}
func! StoreBufTab()
if !has_key(g:TabExplorer, tabpagenr())
let g:TabExplorer[tabpagenr()] = []
endif
if index(g:TabExplorer[tabpagenr()], bufname("%")) == -1 && bufname("%") != ""
call add (g:TabExplorer[tabpagenr()],bufname("%"))
endif
endfunc
func! DisplayTabExplorer()
4split
enew
call append(".",g:TabExplorer[tabpagenr()])
endfunc
au BufEnter * call StoreBufTab()
command! TabExplorer call DisplayTabExplorer()