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

Переместить смежную вкладку для разделения?

Есть ли простой способ переместить смежную вкладку в Vim в текущее окно в виде раскола?

Оглядываясь по сторонам, я дошел до обсуждения списка рассылки, где кто-то сказал об обратном от операции Ctrl + W, T без предоставления решения.

4b9b3361

Ответ 1

Я предлагаю два решения, первое, что я проверил, и я могу гарантировать его работу. Во-вторых, я стараюсь в ближайшее время.
Первое решение: установите этот плагин http://www.vim.org/scripts/script.php?script_id=1961, просто создав папку ~/.vim/plugin и загрузив файл Tabmerge.vim в папку. Затем, когда у вас есть две вкладки, и вы печатаете

:Tabmerge

вы объедините две вкладки в одну, разделенную по горизонтали и top. Ознакомьтесь со ссылкой, чтобы найти полное руководство по использованию.

Кроме того, ознакомьтесь с этой страницей http://vim.wikia.com/wiki/Move_current_window_between_tabs для кода двух функций для перемещения текущего окна между вкладками. Здесь функции (которые я еще не пытался):

function MoveToPrevTab()
  "there is only one window
  if tabpagenr('$') == 1 && winnr('$') == 1
    return
  endif
  "preparing new window
  let l:tab_nr = tabpagenr('$')
  let l:cur_buf = bufnr('%')
  if tabpagenr() != 1
    close!
    if l:tab_nr == tabpagenr('$')
      tabprev
    endif
    sp
  else
    close!
    exe "0tabnew"
  endif
  "opening current buffer in new window
  exe "b".l:cur_buf
endfunc

и

function MoveToNextTab()
  "there is only one window
  if tabpagenr('$') == 1 && winnr('$') == 1
    return
  endif
  "preparing new window
  let l:tab_nr = tabpagenr('$')
  let l:cur_buf = bufnr('%')
  if tabpagenr() < tab_nr
    close!
    if l:tab_nr == tabpagenr('$')
      tabnext
    endif
    sp
  else
    close!
    tabnew
  endif
  "opening current buffer in new window
  exe "b".l:cur_buf
endfunc

Ответ 2

Проблема с вашей проблемой заключается в том, что вкладка не привязана к определенному буферу. У вас может быть 10 окон с таким количеством буферов на вкладке, что "перемещение вкладки в раскол" не имеет большого смысла.

Что имеет смысл, так это "show buffer x into split", который можно сделать с помощью

:sb <name_of_buffer>