Tôi đang cung cấp hai giải pháp, giải pháp đầu tiên tôi tự kiểm tra và tôi có thể đảm bảo nó hoạt động. Thứ hai, tôi đang cố gắng sớm.
Giải pháp đầu tiên: cài đặt plugin này http://www.vim.org/scripts/script.php?script_id=1961 bằng cách chỉ cần tạo thư mục ~/.vim/plugin
và tải xuống tệp Tabmerge.vim
vào thư mục. Sau đó, khi bạn có hai tab và bạn nhập
:Tabmerge
bạn sẽ hợp nhất hai tab thành một, chia nhỏ theo chiều ngang và top
căn chỉnh. Kiểm tra liên kết để tìm hướng dẫn sử dụng đầy đủ.
Hoặc, hãy xem trang này http://vim.wikia.com/wiki/Move_current_window_between_tabs để biết mã của hai hàm để di chuyển cửa sổ hiện tại giữa các tab. Đây là chức năng (mà tôi đã không cố gắng chưa):
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
và
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
Cảm ơn, tabmerge là đủ cho nhu cầu của tôi. – mhitza
Giải pháp thay thế thứ hai tốt hơn cho tôi. Tôi đã ánh xạ chúng thành 'mt' và' mT' ở chế độ bình thường vì nó phù hợp với 'gt' và' gT' mà tôi sử dụng để điều hướng các tab. Ngoài ra, tôi đã sử dụng phương án tách theo chiều dọc được hiển thị trong trang đó ('vert topleft split' thay vì' của' sp'). –