Vim sözdizimi açıkken zaman içinde yavaşlar


11

syntax onVim'i kullanmak için yapabileceğim bir şey var mı ?

Önemli bir şeyi açar açmaz bir süre sonra düzenlemek neredeyse imkansız hale gelir. Her tuşa basma gecikmeye neden olur. Eğer sözdizimi vurgulamayı kapatırsam veya vim'i yeniden başlatırsam - yine iyidir.

Ben var synmaxcolsadece 59 satır uzunluğundadır ve 80 karakteri geçmeyen bir 120. Numune yakut dosyasına ayarlayın.

Ben kullanıyorum vim-rubyve vim-rails.

Sorun, gecikmenin zaman içinde biriktiği görülüyor. Dosyayı sıfırdan açtığımda sorun yok. Bir süre sonra yavaşlar ve yavaşlar.


1
Bunu çoğaltmayı denedin vim -Nu NONE -c 'syntax on'mi? Bu yazıdaki
akshay

Ne dosya tipi? Hiç?
romainl

1
Yakut. Aslında ile düzenlenebilir olduğunu, -u NONEbu yüzden o zaman bazı eklenti olmalı. Sanırım çoğu soruya cevap 'suçlu bulana kadar eklentileri devre dışı' :(
firedev

Ancak sorun şu ki - gecikme zaman içinde birikiyor gibi görünüyor. Dosyayı sıfırdan açtığımda sorun yok. Bir süre sonra yavaşlar ve yavaşlar.
firedev

Yanıtlar:


14

Son Vim sürümlerinde, :syntimeher bir sözdizimi grubunun ne kadar süreceğini gösteren bir rapor oluşturarak sözdizimi vurgulamanın yavaşlığını gidermek için bir komut vardır. Bu çok yararlı ve suçluyu hızlı bir şekilde bulmanızı sağlar; tek dezavantajı profil etkin etkin Vim (genellikle "BÜYÜK") bir yapı gerekir. :help :syntimenasıl kullanılacağı konusunda iyi talimatlar sağlar.

Alternatif olarak, tek tek sözdizimi komut dosyalarını ~/.vim/syntax/ve $VIMRUNTIME/syntax/(akıma göre 'filetype') içinden kaldırmayı deneyebilir ve daha sonra komut dosyasının içindeki sözdizimi tanımlarının bölümlerini kaldırarak daha ayrıntılı inceleme yapabilirsiniz.


Hmm ilginç, bunun gibi sesler etiketleri ile ilgili bir şey. En çok zaman alan en üst satırın diğer projelerimden yöntemleri var. 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?\ ....- bu açıkça diğer klasörden. Etiketler devre dışı bırakılsın mı?
firedev

Vim-easytags gibi etiketleri vurgulayan bir eklenti kullanıyor musunuz ? Bu gerçekten yavaşlamaya neden olabilir.
Ingo Karkat

Evet, devre dışı bıraktım, sayılar tekrar aklı başında değil. Teşekkürler.
firedev

Hmm şimdi tekrar harekete geçiyor, bu sefer onun: 0.121880 2078 54 0.002260 0.000059 rubySymbol []})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@= - Bu konuda yapabileceğim bir şey var mı?
firedev

2
Yeni regexp motoru olabilir; deneyin :set regexpengine=1(Ruby dosyasını açmadan önce yeni bir Vim örneğinde en iyisi).
Ingo Karkat

5

Vim'in sözdizimi vurgulamasında bir diğer tipik darboğaz katlanır. Bir kat çok sayıda sözdizimi öğesi içeriyorsa düzenleme çok yavaş olabilir (bu temelde birçok satırın üzerinden geçtiği anlamına gelir), çünkü vim eklenen her karakter için tüm sözdizimini yenileyecektir.

Yaşadığınız şey buysa FastFold eklentisinin kullanılmasını öneririm . Bu eklenti sözdizimi kıvrımlarını tanımlar ve bunları manuel kıvrımlarla değiştirir, böylece vim'in sözdizimi daha hızlı vurgulanır.


1

İşte sonunda ne yaptım:

  • Kaldırılan xolox/vim-easytags
  • Kaldırılan xolox/vim-misc
  • Değiştirildi kien/ctrlp d11wtq/ctrlp_bdeleteve tacahiroy/ctrlp-funkyile junegunn/fzf
  • Ayarlamak regexpengine=1

Şu anda Vim tereyağı gibi pürüzsüz ama artık etiketim yok. İç çekmek...


1
Vim'de yerleşik etiketler desteği vardır. Herhangi bir üçüncü taraf eklentisine ihtiyacınız yoktur (elbette etiketler dosyasını oluşturmak için ctags dışında). Tim Pope'nin Git ile Zahmetsiz Ctags makalesine bakın. Bunu kullanıyorum ve harikalar yaratıyor. Ayrıca :help tag-commandsbir etikete atlamak için bakın . Vim ile çalışırken ctags'ı çok önemli görüyorum. Navigasyonu süper basitleştirir ve hatta otomatik tamamlayabilirsiniz :help i_Ctrl-x_Ctrl-]!
akshay

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.