2013-09-28 385 views
11

Tôi biết rằng :qa đóng tất cả bộ đệm và cửa sổ và thoát khỏi vim. Nó cũng rõ ràng rằng tôi có thể sử dụng :q để thoát khỏi một cửa sổ/chia nhỏ trong một tab nhất định. Nhưng hãy xem xét trường hợp tôi có ba cửa sổ trong tab hiện tại và một loạt các tab đang mở liền kề. Tôi muốn đóng ba cửa sổ trong tab hiện tại nhưng không thoát khỏi vim hoặc các tab lân cận khác.Làm cách nào để đóng tất cả các cửa sổ trong tab hiện tại của vim

Tôi làm cách nào? Tôi đã đi qua các tập tin trợ giúp vim, nhưng dường như không có một lựa chọn trực tiếp. Tôi tưởng tượng nó có thể có được chức năng như vậy bằng cách sử dụng vimscript, nhưng tôi muốn chắc chắn trước khi rút ra kết luận rằng đó là lựa chọn duy nhất.

Nếu vim không hỗ trợ trực tiếp và ai đó đã đủ tuyệt vời để viết một plugin cho nó, tôi rất muốn biết về nó.

+0

Trong thuật ngữ Vim, "split" = a "window". Bạn có ý gì bằng cách đóng "tất cả các phần tách trong cửa sổ hiện tại"? Bạn đang nói về các trang tab? – glts

+0

@glts yep, tôi nhận ra ngay sau khi đăng nó mà tôi đã nhét hết các thuật ngữ. Sửa nó ngay bây giờ. Cảm ơn đã chỉ ra điều đó. – gkb0986

Trả lời

17

Bạn có muốn đóng trang tab hiện tại không? Sau đó, có lệnh :tabclose cho điều đó.

+0

Tôi đã tìm ra nó cùng lúc bạn trả lời nó. Cảm ơn mặc dù. – gkb0986

+0

Tôi làm cách nào để đóng trang tab cuối cùng? –

+0

@ HieuM.Nguyen Hiện tại, bạn sẽ phải biết tabnumber và chỉ định rằng để ': tabclose'. Có một [đề xuất vá] (http://article.gmane.org/gmane.editors.vim.devel/46770) để tăng cường xử lý các đối số '{count}' cho một số lệnh liên quan (': close',': argadd ',': argdelete'). Có thể muốn yêu cầu tác giả đưa xử lý bù tương đối vào ': tabclose' để': $ tabclose' hoạt động. – jamessan

3

Tôi cũng phát hiện ra lệnh này hoạt động. Trang trợ giúp tại help tabpage khá hữu ích.

Giống như @glts đã chỉ ra trong nhận xét, tôi cần nhận thuật ngữ vim của mình trước khi tôi có thể tìm câu trả lời.

0

Câu trả lời hiện có đề xuất :tabc[lose] là chính xác. Tuy nhiên, có một tình huống trong đó một câu trả lời khác có thể hữu ích.

Trong trường hợp bạn muốn đóng cửa sổ trong tab hiện tại để giảm số thứ bạn mở trước khi mở tab mới và kéo một số tệp mới vào đó, tùy chọn tabclose vẫn hoạt động; ngắn gọn, bạn sẽ làm :tabc|tabe. Tuy nhiên, Vim purist trong tôi không thể không chỉ ra rằng bạn có thể tiết kiệm cho mình ba tổ hợp phím bằng cách gõ :on|ene thay vào đó, viết tắt là :only | enew hoặc "đóng tất cả cửa sổ ngoại trừ cửa sổ này trong tab hiện tại; tệp chưa đặt tên trong cửa sổ này. " Và nếu muốn thay thế các cửa sổ hiện tại bằng một tệp được đặt tên, thành ngữ này là hai phím bấm ngắn hơn phím kia, với tổng số là năm: :on|e foo.txt so với :tabc|tabe foo.txt.

Vì vậy, trong khi câu trả lời chung chính xác cho câu hỏi là lệnh :tabclose, có các trường hợp trong đó :on|e hoặc :on|ene hữu ích hơn.