Есть ли простой способ переместить смежную вкладку в Vim в текущее окно в виде раскола?
Оглядываясь по сторонам, я дошел до обсуждения списка рассылки, где кто-то сказал об обратном от операции Ctrl + W, T без предоставления решения.
Есть ли простой способ переместить смежную вкладку в Vim в текущее окно в виде раскола?
Оглядываясь по сторонам, я дошел до обсуждения списка рассылки, где кто-то сказал об обратном от операции Ctrl + W, T без предоставления решения.
Я предлагаю два решения, первое, что я проверил, и я могу гарантировать его работу. Во-вторых, я стараюсь в ближайшее время.
Первое решение: установите этот плагин 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
Проблема с вашей проблемой заключается в том, что вкладка не привязана к определенному буферу. У вас может быть 10 окон с таким количеством буферов на вкладке, что "перемещение вкладки в раскол" не имеет большого смысла.
Что имеет смысл, так это "show buffer x into split", который можно сделать с помощью
:sb <name_of_buffer>