Ini mungkin pertanyaan bodoh, tapi tetaplah bersamaku.
Saya mengotomatisasi beberapa hal yang biasa saya lakukan ketika mengatur lingkungan kerja baru, dan ingin mengotomatiskan perintah Vim :BundleInstall
(untuk menginstal semua plugin Vim saya).
Apakah mungkin menjalankan ini dari shell?
Atau, apakah mungkin untuk menjalankan skrip Vim, mengeksekusi :BundleInstall
, menunggu sampai selesai dan berhenti?
Terima kasih.
vim +BundleInstall +qall!
.Anda dapat menjalankan perintah Anda seperti ini:
yang akan menghindari membuka jendela Vim di terminal Anda.
Catatan: Jawaban pertama saya termasuk
-s
opsi yang saya perlukan untuk aplikasi lain tetapi tidak benar di sini karena itu mencegah banyak dari Vim's intizationization termasuk sumber plugin yang mendefinisikanBundleInstall
perintah.sumber
-s
tidak lebih dari menghambat pesan-pesan tertentu - itu juga menghambat komunikasi - jadi definisi BundleInstall tidak bersumber. Salah satu cara untuk memperbaiki yang akan menambahkan pilihan seperti ini sebelum pertama-c
:--cmd 'runtime plugin/bundle.vim'
. Edit nama file yang sesuai. Lihat:help -s-ex
.Sementara resep khusus vim di atas adalah cara yang tepat untuk melakukannya, Anda selalu dapat menggunakan pendekatan yang lebih umum seperti autoexpect .
sumber
Untuk situasi di mana Anda membutuhkan vim untuk dimuat penuh seolah-olah Anda memulainya secara manual, ini berfungsi:
Sebagai contoh, saya ingin mengarahkan output
:map
ke file dari shell, tetapi saya ingin menangkap pemetaan yang vim-airline ciptakan hanya setelah itu ditampilkan tabline-nya (baris di atas menunjukkan semua buffernames terbuka.) Karena sepertinya melakukan ini tidak sinkron, hanya menjalankan-c
redirect ke file tidak memberikan waktu untuk membuat pemetaan. Mungkin ada cara yang lebih baik, tetapi ini bekerja untuk saya, terutama karena saya sudahupdatetime
menetapkan ke100
(0,1 detik), yang mempengaruhi berapa lama sampaiCursorHold
acara tersebut menyala. Secara default, vim menetapkannya menjadi 4 detik.sumber