2009-11-18 58 views

Trả lời

214

Cũng như trước đây gợi ý :tabedit cách tiếp cận, một cách nhanh hơn để làm việc đó là (trong chế độ bình thường) để đạt Ctrl - Wphím Shift - T. Ctrl-W là tiền tố chung cho nhiều lệnh thao tác cửa sổ khác nhau.

Xem:

:help Ctrl-W_T 
:help Ctrl-W 
+3

Lưu ý rằng' trợ giúp Ctrl-W_T' sẽ đưa bạn đến mục trợ giúp của 'Ctrl-W_t' (chữ thường), tuy nhiên, tiếp tục xuống dưới trang là 'Ctrl- Mục nhập W_T' (có chữ T), nói "Di chuyển cửa sổ hiện tại sang trang tab mới ...." – Rabarberski

+0

@DrAl và cách chúng tôi di chuyển cửa sổ tab mới để chia cửa sổ? –

+0

@RamizUddin Không có cách đơn giản để làm điều này (vì nó không phải là rõ ràng mà cửa sổ bạn muốn chia thành). Tuy nhiên, bạn có thể tìm ra số bộ đệm cho trang tab hiện tại của bạn bằng ': echo bufnr (" ")' và sử dụng số này bạn có thể chia một cửa sổ với ': sp # 3' hoặc': sb 3' (giả định 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 điều này. – DrAl

97

Hãy thử

:tabedit %<CR> 
+0

Chỉ cần tò mò tại sao bạn bao gồm với điều đó. – Swiss

+13

Vì lý do tương tự tôi đã bao gồm ":". Đây là khóa kết hợp vim hoàn chỉnh ở chế độ bình thường và bạn có thể sử dụng nó trong 'nnoremap' và trong 'nmap' –

+0

Cái này không hiệu quả với tôi. Nó sẽ mở tab mới trong một giây, nhưng sau đó đóng tab đó vì một số lý do. Phải là một số vấn đề với cài đặt hoặc plugin tôi có. Tuy nhiên, giải pháp của DrAl dưới đây đã hoạt động. –

0

tôi đã được sử dụng this mà cung cấp cho bạn hai chức năng có thể được ràng buộc với một cặp phím nóng hoặc lệnh, và đó hoạt động khá trực giác. Tôi khá chắc chắn nó cung cấp hành vi thậm chí còn thân thiện hơn so với ví dụ Ctrl-W_T. Ví dụ: khi nhiều cửa sổ đang mở trong nhiều tab, sử dụng chức năng này cho phép bạn di chuyển cửa sổ hiện tại sang tab tiếp theo hoặc trước đó và nếu bạn di chuyển thứ gì đó đến trước tab đầu tiên hoặc sau tab cuối cùng. , sau đó nó biến thành một tab hoàn toàn mới. Điều này có nghĩa nếu bạn có 2 tab, mỗi tab có một cửa sổ duy nhất, sau đó di chuyển cửa sổ của tab đầu tiên sang bên phải sẽ kết hợp nó với tab thứ hai để dẫn đến một tab duy nhất 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 là để đạt được bằng cách sử dụng 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ổ di chuyển xung quanh các tab, tách cửa sổ ra thành các tab (bằng cách đẩy một cửa sổ ra ngoài) và nối các tab riêng biệt vào các cửa sổ bên trong một tab duy nhất , khá nhiều thứ bạn có thể muốn, thiếu sắp xếp vị trí (đó là một chủ đề riêng biệt và được xây dựng trong các câu lệnh Ctrl-W + Shift-HJKL hoạt động tốt).

2

Thao tác này sẽ di chuyển bộ đệm mới nhất trong tab mới và khôi phục bộ đệm trước đó trong tab hiện tại. tôi sử dụng này sau khi kéo một file mới vào tôi gvim

:sbp |wincmd p| wincmd T 

Bạn có thể lập bản đồ nó như thế để 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 
Các vấn đề liên quan