Saya telah melalui autocmd.txt
bantuan, tetapi informasi tentang ini tersebar dan tidak selalu ada (mis. Dengan BufRead
).
Dapatkah seseorang yang memahami ini dengan baik menuliskan urutan peristiwa-peristiwa ini - mungkin dengan kondisi yang ditandai dalam paranthes, seperti
WinEnter
BufEnter (if this window is for a different buffer than the current)
dan seterusnya, untuk referensi mudah?
Catatan (disalin dari komentar saya sendiri di bawah) : Saya tidak berbicara tentang penjelasan individu tentang mereka, yang OK, tetapi tentang bagaimana mereka berinteraksi satu sama lain dan dalam urutan apa mereka terjadi. Misalnya, WinEnter
"Vim menjalankan perintah otomatis BufEnter setelah perintah otomatis WinEnter", TabEnter
mengatakan "Setelah memicu WinEnter dan sebelum memicu acara BufEnter", semuanya tersebar seperti ini ke banyak tempat. Dan kadang-kadang tidak disebutkan sama sekali (misalnya misalnya BufRead
tidak menyebutkan apakah berjalan setelah BufEnter atau sebelumnya - mungkin seorang ahli dapat menyimpulkannya dari beberapa info lain di sana, tapi saya tidak bisa.
Jadi, maksud saya di sini adalah untuk buat satu referensi sederhana untuk urutan peristiwa ini yang dapat dilihat dengan cepat oleh non-pakar,autocmd
spesifikasi acara.
sumber
WinEnter
"Vim menjalankan perintah otomatis BufEnter setelah perintah otomatis WinEnter",TabEnter
mengatakan "Setelah memicu WinEnter dan sebelum memicu acara BufEnter", semuanya tersebar seperti ini ke banyak tempat. Dan kadang-kadang tidak disebutkan sama sekali (misalnya misalnyaBufRead
tidak menyebutkan apakah berjalan setelah BufEnter atau sebelumnya - mungkin seorang ahli dapat menyimpulkannya dari beberapa info lain di sana, tapi saya tidak bisa.autocmd
spesifikasi acara kami .Jawaban:
Untuk melengkapi jawaban @sundar:
Anda dapat mencatat urutan acara hanya dengan fungsi pencatatan:
Lihat file lengkapnya di sini: https://gist.github.com/nobe4/aa8313fe98ca8821afad
Anda kemudian bisa
tail -f log
dan Anda mendapatkan aktivitas acara autocommand waktu-nyata.sumber
Saya mencoba googling untuk ini dengan set kata kunci yang berbeda, dan mendapatkan emas pada satu upaya tersebut dengan hasil ini: http://www.ibm.com/developerworks/library/l-vim-script-5/
Secara khusus, bagian ini relevan dengan pertanyaan saat ini:
Ini masih belum sepenuhnya komprehensif (mis. Tidak menyebutkan
BufRead
aliasBufReadPost
, tapi saya berasumsi itu akan datang setelah ituBufReadCmd
), tapi ini awal yang bagus.Namun, satu informasi penting yang hilang adalah bagaimana peristiwa
FileType
danSyntax
autocmd berinteraksi dengan ini (dengan asumsifiletype
dansyntax
sudah ada, dan file baru dibuka yang jenis file dan sintaksinya diketahui oleh Vim).sumber
autocmd
di beberapa file tidak didefinisikan dengan baik. Dan bahkan dengan satu file, urutannya telah berubah beberapa kali dengan versi Vim. Masalah yang dapat (dan memang) disebabkan oleh plugin ini telah dibahas sampai mati pada vim_dev, dan desain keseluruhan tidak akan berubah di masa mendatang yang dapat diprediksi. Adapun untuk mendapatkan pemahaman yang komprehensif , ada 139 kejadianapply_autocmds
dalam sumber untuk Vim 7.4.827. Semoga beruntung dengan itu.autocmd
Dalam Vim berantakan, saya tidak berpikir itu sebenarnya mungkin untuk menulis referensi definitif, kecuali untuk beberapa kasus sederhana. Saya kira semua orang hanya puas dengan "biasanya bekerja", dan mengangkat bahu ketika tidak. Adapun neovim, saya pribadi memiliki perasaan campur aduk tentang proyek ini. Saya belum melihat kode baru-baru ini; Saya kira Anda bisa mendapatkan jawaban pada pelacak masalah mereka.