Vim: открыть каждый буфер на новой вкладке
Мне интересно, как я могу открыть все текущие буферы в vi (m) на новых вкладках.
Я знаю, что вы можете отредактировать свой файл vimrc, чтобы сделать что-то подобное, но я бы предпочел просто выполнить команду при необходимости.
Я могу сделать это вручную, привязывая новую вкладку и открывая команды буфера, такие как:
:tabnew | b 1
Но я бы предпочел более автоматический подход.
Ответы
Ответ 1
вы можете назначить сопоставление этой команде:
:bufdo tab split
- Объяснение:
- bufdo [команда] применяет [команду] ко всем буферам
- вкладка split возьмет текущий буфер и откройте вкладку с ней
наконец, чтобы отобразить это:
map ,bt :bufdo tab split<CR>
здоровается
Ответ 2
Путь:
:tab sball
С помощью:
"sball: измените порядок экрана, чтобы открыть одно окно для каждого буфера в списке буферов... При использовании модификатора |: tab | новые окна открываются на новой вкладке, вплоть до" tabpagemax "."
Без | | tab | модификатор, он открывает каждый буфер в режиме разделения.
:sball
или открыть не более 6 из них
:6sball
и др.
Ответ 3
[Я бы прокомментировал принятый ответ выше, но не имел достаточного количества точек ответа.]
Для меня принятый ответ оставляет новые вкладки без подсветки синтаксиса, если они являются буферами, которые никогда ранее не просматривались. (Чтобы воспроизвести - выберите несколько XML файлов, выберите "Редактировать с помощью Single Vim" в Проводнике Windows, попробуйте его оттуда.) Я не знаю, почему это происходит, поэтому мое решение состоит в том, чтобы снова включить подсветку синтаксиса.
Мне также кажется, что это раздражает, что последний буфер заканчивается двумя вкладками, поэтому мое решение состоит в том, чтобы перейти на последнюю вкладку и закрыть ее.
:bufdo tab split
:tablast
:tabclose
:syntax on
Таким образом, при отображении
:map ,bt :bufdo tab split<CR>:tablast<CR>:tabclose<CR>:syntax on<CR>