Ketika saya membuka vim
dengan banyak file ( vim f1 f2 ...
), bagaimana saya bisa membukanya di tab secara langsung, tanpa menggunakan -p
?
Saya ingin memisahkan perilaku shell dari perilaku vim, menghapus vim
alias -based, dll. Itulah sebabnya saya lebih suka untuk tidak menggunakan alias, dll. (Karenanya, tidak ada -p
).
Saya cukup yakin ini telah diminta di beberapa situs SE (seperti pada SO ). Namun, saya tidak dalam posisi untuk menilai apa yang akan menjadi cara terbaik untuk melakukan ini, jadi saya juga berharap untuk catatan tentang mengapa metode yang disarankan itu baik.
Untuk pos SO tertentu yang ditautkan:
jawaban yang diterima benar
tabpagemax=9999
. Sebut saja itu bias pribadi, tetapi saya melihat batas yang ditetapkan untuk sejumlah besar dan saya pikir ada sesuatu yang salah (seperti yang saya rasakan jika saya melihatnyachmod 777
).:au VimEnter * set tabpagemax=9999|sil tab ball|set tabpagemax&vim
jawaban lainnya mengarah ke tab ekstra kosong yang dibuka, sementara jauh lebih ringkas.
:autocmd VimEnter * argdo tabedit
Saya berharap jawaban yang tidak memiliki tab ekstra dibuka dan tidak menetapkan batas untuk nilai besar (atau menjelaskan mengapa itu bukan hal yang buruk).
:qa
kebiasaan. Jika itu satu-satunya keuntungan saya akan pergi dengan yang lain, karena memang terlihat lebih sederhana.Jawaban:
Setelah beberapa percobaan, saya menemukan ini sebagai cara terbaik; itu harus berperilaku sama dengan
vim -p
:Pertama,
tab all
buka semua entri dalam daftar argumen (:args
) di sebuah tab. Daftar argumen adalah daftar file yang Anda berikan ke Vim saat startup. Dantabfirst
pastikan tab pertama difokuskan daripada yang terakhir (ini opsional).Kami tidak melakukan semua ini jika
&diff
diatur; jika ya, kami menggunakanvimdiff
atauvim -d
, di mana kami ingin memiliki 2 jendela, dan bukan 2 tab.Dalam jawaban ini saya juga menulis sedikit tentang daftar argumen dan
tab all
yang mungkin menarik.Beberapa catatan tentang solusi lain:
tab ball
membuka tab untuk setiap entri dalam daftar buffer , bukan daftar argumen. "Masalahnya" adalah bahwa daftar buffer dapat disimpan dalam file viminfo pada saat berhenti, dan dikembalikan pada saat startup (jika%
ada'viminfo'
, tidak diaktifkan secara default). Jadi jika Anda cukup mengetiknyavim
akan membuka file-file itu. Saya menganggap ini tidak diinginkan, meskipun saya bisa membayangkan beberapa orang menganggapnya berguna; jadi gunakan apa yang Anda inginkan.set tabpagemax=9999
tidak diperlukan; default-nya10
, dan ini harus baik-baik saja. Anda dapat meningkatkan ini di vimrc Anda jika Anda menginginkan lebih, tetapi9999
ini adalah angka yang konyol. Jika Anda menggunakan-p
, Anda juga mendapatkantabpagemax
tab. Jadi ini harus menghargai itu. Ingat bahwa ini akan membuka (membaca) buffer pada startup, jadi agak lambat.autocmd VimEnter * argdo tabedit
adalah cara yang sama untuk mengatakantab all
. Namun, buffer awal tidak dihapus, jadi Anda pergi dengan tab tambahan itu (tab all
menggantikan semua tab). Untuk mengatasinya, Anda perlu solusinya dalam jawaban Josh Petrie.sumber
Saya pikir menambahkan sesuatu seperti ini ke Anda
.vimrc
dapat menyelesaikan masalah Anda (perhatikan, bahwa saya tidak benar-benar menggunakan ini dan hanya melakukan pengujian minimal, mungkin melakukan hal-hal aneh dalam beberapa kasus):Seperti yang Anda catat,
argdo tabedit
akan meninggalkan Anda tab ekstra kosong. Jadi Anda bisa menutup tab itu secara otomatis. Namun, Anda tidak bisa hanya memohontabclose
tidak dicentang, atau vim akan memberi Anda kesalahan ketika Anda meluncurkannya tanpa argumen atau satu file (Anda "tidak dapat menutup tab terakhir"). Alih-alih, periksa untuk melihat apakah jumlah total tab lebih besar dari satu (itulah yang$
menyebabkantabpagenr
pengembalian) dan baru Anda perlu menutup tab terakhir.Yang mengatakan, saya merasa perlu menunjukkan bahwa tab vim tidak seperti tab editor lain , dan itu sesuatu yang perlu diingat ketika mempertimbangkan bagaimana menggunakan tab dalam alur kerja Anda (Anda tampaknya menyadari hal ini, tetapi saya ingin membuat poin untuk kepentingan pembaca masa depan yang mungkin tidak jadi mereka dapat membuat keputusan sendiri).
sumber