Cara mendapatkan vim untuk membuka banyak file ke dalam tab sekaligus

85

Apakah mungkin untuk mendapatkan vim untuk membuka banyak file ke dalam tab, mirip dengan cara args <path>perintah akan membuka banyak file ke dalam buffer?

Melakukan sesuatu seperti :tabe ./*menghasilkan kesalahan "E77: Terlalu banyak nama file", meskipun jumlah file kurang dari nilai yang ditentukan di tabpagemaxproperti.

(Saya percaya vim -p <files>opsi akan terbuka di tab, tapi saya berharap menemukan cara untuk melakukannya ketika vim sudah terbuka.)

Abu
sumber
12
Terima kasih telah menyebutkan opsi -p; itulah yang saya cari
user72923
4
Saya menemukan pertanyaan ini melalui Google. Saya mencari cara untuk membuka vim dengan tab dari baris perintah, vim -padalah apa yang saya cari :-)
Rocket Hazmat
Terkait: Buka beberapa file di tab baru dengan VIM di Stack Overflow.
Mihai Capotă
Terkait: Bagaimana cara membuka banyak tab untuk banyak file di vim? di Super User.
Mateusz Piotrowski

Jawaban:

82
:tab all

akan membuka semua file dalam daftar argumen Vim di setiap tab. Daftar argumen awalnya diatur ke daftar nama file yang diberikan pada baris perintah ketika Vim dimulai. Daftar dapat diubah dengan :argsdan perintah terkait. Lihat

:help :all
:help argument-list

Contoh:

:args *.c
:tab all

akan membuka semua file .c di direktori saat ini di masing-masing tab.

garyjohn
sumber
Saya tidak yakin bagaimana ini dimaksudkan untuk bekerja. Katakanlah jika saya ingin membuka semua file .txt di direktori saat ini, apa yang akan saya masukkan? Jika saya masuk :tab all *.txt, vim counter dengan "E488: Trailing karakter"
Ash
Saya mengedit jawaban untuk mengklarifikasi apa yang saya maksud dengan "argumen". Saya maksudkan daftar argumen Vim daripada argumen untuk :tab all.
garyjohn
1
Saya tidak tahu dari perintah tunggal yang dapat melakukan itu, tapi Anda dapat menempatkan dua perintah pada satu baris dengan memisahkan mereka dengan bar vertikal, seperti ini: :args *.c | tab all.
garyjohn
9
Kelemahannya adalah bahwa menggunakan :tab allmengganti tab Anda yang ada. Karena itu, dalam kasus penggunaan saya, itu tidak memberikan banyak manfaat dibandingkan membuka kembali file dengan vim -p. Namun, jika ada beberapa cara untuk memasukkan tab yang ada ke dalam :args, mungkin untuk membuka tab baru dan menyimpan yang sudah ada.
Kevin Qi
3
Jika tab sudah terbuka, pengganti argadduntuk args.
cdosborn
4

Anda sebenarnya dapat membuka tab baru dan menyimpan tab saat ini tanpa menulis fungsi baru. Lihat jawaban ini di Stack Overflow: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

Anda mungkin ingin membuka tab kosong baru ( :tabe) sebelum melakukannya, karena file pertama akan terbuka di tab saat ini. Juga, tab ekstra kosong akan dibiarkan terbuka (lihat :help argdountuk memahami mengapa).

Mihai Capotă
sumber
Jika Anda menambahkan tab baru ke set yang ada, bukankah lebih mudah hanya dengan melakukannya :tabe file1?
jpaugh
@ jpaugh, pertanyaannya adalah tentang beberapa file.
Mihai Capotă
Tidak akan :args | argdo tabemenjawab pertanyaan itu? Apa alasan untuk menambahkan file baru dengan cara ini?
jpaugh
@ jpaugh, inilah pertanyaan yang diajukan: "Saya percaya opsi vim -p <files> akan terbuka di tab, tapi saya berharap menemukan cara untuk melakukannya ketika vim sudah terbuka."
Mihai Capotă