Có cách nào để lấy một cửa sổ hiện có (tách) và đặt nó vào một tab mới không?
Có cách nào để lấy một cửa sổ hiện có (tách) và đặt nó vào một tab mới không?
Câu trả lời:
Cũng như :tabedit
cách tiếp cận được đề xuất trước đây , một cách nhanh hơn để thực hiện là (ở chế độ bình thường) để nhấn Ctrl- W Shift- T. Ctrl-W là tiền tố chung cho nhiều loại lệnh thao tác cửa sổ.
Xem:
:help Ctrl-W_T
:help Ctrl-W
help Ctrl-W_T
đưa bạn đến mục trợ giúp của Ctrl-W_t
(chữ thường), tuy nhiên, phía dưới trang là Ctrl-W_T
mục (có chữ T viết hoa), nói "Chuyển cửa sổ hiện tại sang trang tab mới ...."
:echo bufnr("")
và sử dụng số này, bạn có thể chia một cửa sổ bằng :sp #3
hoặc :sb 3
(giả sử số đó là 3). Bạn có thể đưa ra một số ánh xạ hoặc chức năng để đơn giản hóa việc này.
:sb
sẽ hoạt động, nhưng với các phiên bản gần đây của Vim (> = 7.3), bạn cũng có thể sử dụng hoàn tác liên tục bằng cách đặt set undodir=/path/to/dir
trong đó / path / to / dir là một thư mục bạn tạo ra cho mục đích và sau đó set undofile
. Điều này sẽ cho phép bạn thoát vim và sau đó khởi động lại và vẫn giữ trạng thái hoàn tác / làm lại.
Thử
:tabedit %<CR>
C-w T
là cách nhanh hơn để làm điều tương tự
Điều này di chuyển bộ đệm mới nhất trong một tab mới và khôi phục bộ đệm trước đó trong tab hiện tại. Tôi sử dụng điều này sau khi kéo một tệp mới vào Gvim của tôi
:sbp |wincmd p| wincmd T
Bạn có thể ánh xạ nó như thế vào Ctrl-Backspace
:nnoremap <C-BS> :sbp<bar>wincmd p<bar>wincmd T<CR>
nó thực hiện đặc biệt tốt với
:set switchbuf=usetab
Tôi đã sử dụng cái này cung cấp cho bạn hai chức năng có thể được liên kết với một cặp phím nóng hoặc lệnh và hoạt động khá trực quan. Tôi khá chắc chắn rằng nó cung cấp hành vi thậm chí còn thân thiện hơn ví dụ Ctrl-W_T
.
Ví dụ: khi nhiều cửa sổ được mở trong nhiều tab, sử dụng chức năng này cho phép bạn di chuyển cụ thể cửa sổ hiện tại sang tab tiếp theo hoặc trước đó và nếu bạn di chuyển một cái gì đó đến trước tab đầu tiên hoặc sau tab cuối cùng, thì nó sẽ chuyển vào một tab hoàn toàn mới.
Điều này có nghĩa là nếu bạn có 2 tab, mỗi tab có một cửa sổ, sau đó di chuyển cửa sổ của tab đầu tiên sang phải sẽ kết hợp nó với tab thứ hai để tạo ra một tab có hai cửa sổ. Tôi không biết làm thế nào phức tạp hoạt động này để đạt được bằng cách sử dụng các lệnh truyền thống.
Điều này có nghĩa là một cặp lệnh di chuyển cho phép cả hai cửa sổ dịch chuyển xung quanh các tab, tách các cửa sổ ra thành các tab (bằng cách đẩy một cửa sổ ra cuối cùng) và nối các tab riêng biệt vào các cửa sổ bên trong một tab, hầu hết mọi thứ bạn có thể muốn, không cần sắp xếp vị trí (là một chủ đề riêng biệt và các lệnh Ctrl-W
+ tích Shift-HJKL
hợp hoạt động tốt).