Vim melambat seiring berjalannya waktu dengan sintaks aktif


11

Apakah ada yang bisa saya lakukan untuk tetap syntax onmenggunakan Vim?

Segera setelah saya membuka sesuatu yang substansial menjadi hampir mustahil untuk diedit setelah beberapa saat. Setiap penekanan tombol menyebabkan penundaan. Jika saya mematikan penyorotan sintaks atau meluncurkan kembali vim - tidak masalah lagi.

Saya telah synmaxcolmenetapkan ke 120. File ruby ​​sampel hanya sepanjang 59 baris dan tidak melebihi 80 karakter.

Saya menggunakan vim-rubydan vim-rails.

Masalahnya adalah bahwa keterlambatan tampaknya menumpuk dari waktu ke waktu. Ketika saya membuka file dari awal tidak apa-apa. Setelah beberapa saat, ia menjadi semakin lambat.


1
Sudahkah Anda mencoba meniru ini vim -Nu NONE -c 'syntax on'? Sudahkah Anda mengikuti kiat debug pada pos
akshay

Filetype apa? Apa saja?
romainl

1
Rubi. Memang itu dapat diedit dengan -u NONEjadi harus beberapa plugin. Tebak jawaban untuk sebagian besar pertanyaan adalah 'nonaktifkan plugin sampai Anda menemukan pelakunya' :(
firedev

Tapi masalahnya adalah - penundaan itu tampaknya menumpuk dari waktu ke waktu. Ketika saya membuka file dari awal tidak apa-apa. Setelah beberapa saat, ia menjadi semakin lambat.
firedev

Jawaban:


13

Versi Vim terbaru memiliki :syntimeperintah untuk memecahkan masalah lambatnya penyorotan sintaks dengan menghasilkan laporan berapa lama setiap kelompok sintaksis diperlukan untuk mencocokkan. Ini sangat membantu dan cepat memungkinkan Anda menemukan pelakunya; satu-satunya downside adalah bahwa Anda memerlukan Vim (biasanya "BESAR") dengan profil diaktifkan. :help :syntimememberikan instruksi yang baik bagaimana cara menggunakannya.

Atau, Anda dapat mencoba menghapus masing-masing skrip sintaks dari ~/.vim/syntax/dan $VIMRUNTIME/syntax/(sesuai dengan saat ini 'filetype'), dan kemudian menelusuri lebih lanjut dengan menghapus bagian-bagian dari definisi sintaksis di dalam skrip.


Hmm menarik, sepertinya ini adalah sesuatu yang terkait dengan tag. Baris teratas yang paling banyak membutuhkan metode dari proyek saya yang lain. TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 0.129674 247 182 0.002365 0.000525 rubyMethodNameTag \C\<\%(roi\|paginate\|admin_index_attributes\|facilities\|manager\|net_price?\ ....- ini jelas dari folder lain. Nonaktifkan tag?
firedev

Apakah Anda menggunakan plugin yang menyoroti tag, seperti vim-easytags ? Itu mungkin memang menyebabkan pelambatan.
Ingo Karkat

Yap, nonaktifkan saja, bukan angkanya waras lagi. Terima kasih.
firedev

Hmm sekarang bertingkah lagi, kali ini: 0.121880 2078 54 0.002260 0.000059 rubySymbol []})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@= - Ada yang bisa saya lakukan?
firedev

2
Mungkin mesin regexp baru; coba :set regexpengine=1(terbaik dalam contoh Vim baru, sebelum membuka file Ruby).
Ingo Karkat

5

Kemacetan khas lainnya dalam highlight sintaks vim adalah lipat. Pengeditan bisa menjadi sangat lambat jika sebuah flip berisi banyak item sintaks (yang pada dasarnya berarti melewati banyak baris), karena vim akan me-refresh semua sintaks untuk setiap karakter yang dimasukkan.

Jika ini yang Anda alami maka saya sarankan untuk menggunakan plugin FastFold . Plugin ini mengidentifikasi lipatan sintaks dan menggantinya dengan lipatan manual, membuat sorotan sintaks vim menjadi lebih cepat.


1

Inilah yang saya lakukan pada akhirnya:

  • Dihapus xolox/vim-easytags
  • Dihapus xolox/vim-misc
  • Diganti kien/ctrlp d11wtq/ctrlp_bdeletedan tacahiroy/ctrlp-funkydengan junegunn/fzf
  • Set regexpengine=1

Saat ini Vim halus seperti mentega tetapi saya tidak memiliki tag lagi. Mendesah...


1
Vim memiliki dukungan tag bawaan. Anda tidak memerlukan plugin pihak ketiga (selain ctag untuk menghasilkan file tag). Lihat artikel Ctags With Git yang Mudah dari Tim Pope. Saya menggunakan ini dan itu bekerja dengan baik. Lihat juga :help tag-commandsuntuk melompat ke tag. Saya menganggap ctag sangat penting ketika bekerja dengan Vim. Itu membuat navigasi menjadi sangat sederhana, dan Anda bahkan dapat melengkapinya dengan otomatis :help i_Ctrl-x_Ctrl-]!
akshay

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.