2010-12-31 2 views
136

Если вы редактируете файл в VIM, а затем вам нужно открыть существующий буфер (например, из вашего списка буферов: :buffers), как вы можете открыть его в вертикальном разрезе?Открыть буфер в виде вертикального разбиения на VIM

Я знаю, что вы уже можете открыть его с нормального раскола, как:

:sbuffer N 

Wehere N это номер буфера вы хотите, однако, выше открывает, что N буфер горизонтально, а не вертикально.

Я также знаю, что вы можете изменить расположение окна после открытия и имею Вертикальное разделение, как так:

Ctrl-W H 
Ctrl-W L 

Что будет вертикально разделить окно вправо или влево.

Мне кажется, что если есть sbuffer должно быть vsbuffer но не существует (не то, что я знаю)

Кроме того, обратите внимание, что я не ищу плагин к решить этот вопрос. Я знаю о богатстве плагинов, которые позволят вам это сделать.

Уверен, что у меня может быть что-то, что уже есть.

EDIT: В лучшем духе сотрудничества, я создал простую функцию с отображением, если кто-то еще натыкается этого вопроса и не хотите установить плагин:

Функция:

" Vertical Split Buffer Function 
function VerticalSplitBuffer(buffer) 
    execute "vert belowright sb" a:buffer 
endfunction 

Mapping:

" Vertical Split Buffer Mapping 
command -nargs=1 Vbuffer call VerticalSplitBuffer(<f-args>) 

Это выполняет задачу открытия буфера в правой расколе, так и для буфера 1, вы могли бы назвать его как:

:Vbuffer 1 

ответ

151

Try:

:vert sb N 

который откроет левый вертикальный раскол (по умолчанию, если вы не изменили некоторые параметры).

Чтобы открыть раскол справа, с другой стороны:

:vert belowright sb N 
+4

не кажется довольно странным, чтобы не иметь '' vsbuffer N''? Раздражает. Ваш ответ прибивает его. Благодаря! – alfredodeza

+12

Я всегда чувствую, что тоже должен быть 'vsbuffer', и я также часто забываю' Ctrl-w T', чтобы открыть буфер на новой вкладке (или я хочу сделать это с буфером, который в настоящее время не активен или невидим) , Так что в качестве альтернативы вы можете использовать панель для любого из этих случаев, которую мне легче запомнить, чем действительный ответ @ Jeet: ': vsp | b N' и ': tabe | b N'. – ches

+0

Мне нравится, что эта команда позволяет автозаполнение 'N' (что не представляется возможным с помощью команды в другом ответе). Тем не менее, оба они поддержали. –

91

:vsp | b1

1 является некоторый буфер номер. Используйте buffers, чтобы перечислить все буферы.

Вот дополнительная информация о расколах, если вам интересно. Link

+0

Спасибо, кажется, хорошая альтернатива одному @Jeet. – russoue

+6

Вы также можете использовать ': ls', который, по-видимому, является ярлыком для': buffers'. – dskecse

+0

Это более запоминающееся, чем выбранный ответ. Благодаря! – agarie

0

вы можете использовать Neovim, как это:

autocmd FileType python nmap <F5> :rightbelow vertical split <bar> :term python %<cr> 
Смежные вопросы