Apakah ada cara untuk profil plugin Vim?
MacVim saya menjadi lebih lambat dan lebih lambat ketika saya membuka yang besar .py
. Saya tahu saya bisa membatalkan pilihan semua plugin dan memilih kembali satu per satu untuk memeriksa plugin mana yang menjadi penyebabnya, tetapi apakah ada cara yang lebih cepat?
Dotvim saya ada di sini: https://github.com/charlax/dotvim
debugging
optimization
vim
macvim
pembohong
sumber
sumber
.py
file.autocmd
kedengarannya masuk akal bagiku.autocmd
terlihat keren. Hanya mencobanya tetapi Vim tidak lambat sekarang.folding=syntax
bisa melambat. Sudah dicobafolding=manual
dan sekarang semuanya bekerja dengan baikJawaban:
Anda dapat menggunakan dukungan profil bawaan: setelah meluncurkan vim do
(tidak seperti berhenti
noautocmd
tidak benar-benar diperlukan, itu hanya membuat vim berhenti lebih cepat).Catatan: Anda tidak akan mendapatkan informasi tentang fungsi yang telah dihapus sebelum vim berhenti.
sumber
:set more | verbose function {function_name}
akan menunjukkan kepada Anda konten fungsi dan di mana letaknya.profile.log
adalah file di direktori saat sesi Vim Anda.profile.log
untuk melihat daftar fungsi yang diurutkan berdasarkan waktu total (profile.log
sepertinya tidak berguna bagi saya sebelum saya menemukan ada daftar yang diurutkan di akhir).Saya menemukan metode buildm vim lain yang sangat membantu untuk menunjukkan pesan waktu yang tepat saat memuat.
Silakan jalankan:
di VIM untuk mendapatkan informasi lebih lanjut.
sumber
IM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 14:33:40)
-V
menunjukkan itu adalah non-lokal yang$HOME
menyebabkan masalah:e
untuk menyegarkan file. Sortir file di tempat sesuai dengan total waktu yang diambil untuk setiap op seperti:%! sort -k2 -nr
Itu bisa berupa plugin atau penyorotan sintaksis; coba
:syntax off
ketika ini terjadi dan lihat apakah Vim langsung menjadi lebih cepat.Dengan plugins, "kelambatan umum" biasanya berasal dari perintah otomatis; a
:autocmd
mencantumkan semuanya. Selidiki dengan membunuh beberapa dari mereka melalui:autocmd! [group] {event}
. Lanjutkan dari acara yang lebih sering (yaituCursorMoved[I]
) ke yang lebih jarang (misBufWinEnter
.).Jika Anda dapat mereproduksi kelambatan dengan agak andal, pencarian biner mungkin membantu: Pindahkan setengah dari file
~/.vim/plugin/
, lalu yang lain, ulangi di set yang lambat.Jika Anda benar-benar perlu mencari di bawah kap, dapatkan versi Vim yang memiliki
:profile
perintah diaktifkan. (Bukan versi vanilla BIG Windows, tetapi yang dikirim bersama Cygwin memilikinya; juga, kompilasi sendiri cukup mudah di sebagian besar distro.)sumber
Saya merasa terbantu untuk mencetak semua aktivitas Vim ke file dengan memulai Vim dengan
-V
opsi:Ini memberikan verbositas maksimum (level 12) dan mengeluarkannya ke file
log
. Anda kemudian dapat melakukan beberapa tindakan Vim yang Anda tahu lambat, dan kemudian melihat fungsi / pemetaan yang dipanggil secara internal.sumber
Jika Anda mengalami masalah dengan operasi pembaruan layar (
^L
, gulir, dll.) Lambat, masalah Anda mungkin file sorotan sintaksis tidak efisien. Anda dapat menguji ini dengan menonaktifkan sementara penyorotan sintaks (:syn off
) dan melihat apakah masalahnya hilang; jika Anda ingin menggali rinciannya, Anda dapat membuat profil file sintaksis saat ini menggunakan:syntime
::syntime on
untuk mulai membuat profil.:syntime report
untuk menghasilkan laporan. Pola-pola yang tercantum pertama dalam laporan adalah pola yang membutuhkan waktu paling lama untuk diproses.sumber