Подтвердить что ты не робот

Vim: открыть каждый буфер на новой вкладке

Мне интересно, как я могу открыть все текущие буферы в vi (m) на новых вкладках. Я знаю, что вы можете отредактировать свой файл vimrc, чтобы сделать что-то подобное, но я бы предпочел просто выполнить команду при необходимости. Я могу сделать это вручную, привязывая новую вкладку и открывая команды буфера, такие как:

:tabnew | b 1

Но я бы предпочел более автоматический подход.

4b9b3361

Ответ 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>