Cách tải vim để mở nhiều tệp vào tab cùng một lúc


85

Có thể yêu cầu vim mở nhiều tệp vào tab, tương tự như cách args <path>lệnh sẽ mở nhiều tệp vào bộ đệm?

Làm một cái gì đó giống như :tabe ./*kết quả trong lỗi "E77: Quá nhiều tên tệp", mặc dù số lượng tệp ít hơn giá trị được đặt trong thuộc tabpagemaxtính.

(Tôi tin rằng vim -p <files>tùy chọn sẽ mở trong các tab, nhưng tôi hy vọng sẽ tìm ra cách để làm điều đó khi vim đã mở.)


12
Cảm ơn đã đề cập đến tùy chọn -p; đó là những gì tôi đang tìm kiếm
user72923

4
Tôi tìm thấy câu hỏi này thông qua Google. Tôi đang tìm cách mở vim bằng các tab từ dòng lệnh, đó vim -plà những gì tôi đang tìm kiếm :-)
Rocket Hazmat



Câu trả lời:


82
:tab all

sẽ mở tất cả các tệp trong danh sách đối số của Vim trong các tab riêng lẻ. Danh sách đối số ban đầu được đặt thành danh sách tên tệp được đưa ra trên dòng lệnh khi Vim được khởi động. Danh sách có thể được thay đổi với các :argslệnh và liên quan. Xem

:help :all
:help argument-list

Thí dụ:

:args *.c
:tab all

sẽ mở tất cả các tệp .c trong thư mục hiện tại trong các tab riêng lẻ.


Tôi không chắc nó hoạt động như thế nào. Nói nếu tôi muốn mở tất cả các tệp .txt trong thư mục hiện tại, tôi sẽ nhập gì? Nếu tôi vào :tab all *.txt, vim quầy với "E488: Trailing character"
Ash

Tôi chỉnh sửa câu trả lời để làm rõ những gì tôi có nghĩa là "đối số". Ý tôi là danh sách đối số của Vim chứ không phải là đối số :tab all.
garyjohn

1
Tôi không biết một lệnh duy nhất có thể làm điều đó, nhưng bạn có thể đặt hai lệnh trên một dòng bằng cách tách chúng bằng một thanh dọc, như thế này : :args *.c | tab all.
garyjohn

9
Nhược điểm là sử dụng :tab allthay thế các tab hiện có của bạn. Do đó, trong trường hợp sử dụng của tôi, nó không mang lại nhiều lợi ích cho việc mở lại các tệp với vim -p. Tuy nhiên, nếu có một số cách để nhét các tab hiện có vào :args, có thể mở các tab mới và giữ các tab hiện có.
Kevin Qi

3
Nếu một tab đã được mở, thay thế argaddcho args.
cdosborn

4

Bạn thực sự có thể mở các tab mới và giữ các tab hiện tại của bạn mà không cần viết các chức năng mới. Xem câu trả lời này trên Stack Overflow: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

Bạn có thể muốn mở một tab trống mới ( :tabe) trước khi thực hiện điều đó, vì tệp đầu tiên sẽ mở trong tab hiện tại. Ngoài ra, một tab trống thêm sẽ được mở (xem :help argdođể hiểu lý do tại sao).


Nếu bạn đang thêm các tab mới vào một bộ hiện có, sẽ không dễ dàng hơn :tabe file1sao?
jpaugh

@jpaugh, câu hỏi là về nhiều tập tin.
Mihai Capotă

Sẽ không :args | argdo tabetrả lời câu hỏi, mặc dù? Lý do để thêm các tập tin mới theo cách này là gì?
jpaugh

@jpaugh, đây là những gì câu hỏi yêu cầu: "Tôi tin rằng tùy chọn vim -p <files> sẽ mở trong các tab, nhưng tôi hy vọng sẽ tìm ra cách để làm điều đó khi vim đã mở."
Mihai Capotă
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.