Powolność w dopasowywaniu nawiasów przez Vima z domyślną składnią PHP


8

Doświadczam zauważalnego spowolnienia funkcji dopasowywania nawiasów i podświetlania Vima. Gdy kursor zostanie umieszczony nad nawiasami lub nawiasami, czas reakcji konsoli wynosi około 300 ms. Jak wspomniano, wydaje się, że dzieje się tak tylko podczas pracy z plikami PHP. Używam Vima 7.2 na Debian Squeeze z plikiem .vimrc:

  1 set autoindent
  2 set smarttab
  3 set ruler
  4 set expandtab
  5 set termencoding=utf-8
  6 set fileformat=unix
  7 set number
  8 set tabstop=4
  9 set encoding=utf-8
 10 set shiftwidth=4
 11 set noswapfile
 12 set backspace=indent,eol,start
 13 set shortmess=lrwxI
 14 set history=50
 15 set background=dark
 16
 17 let php_folding=2
 18 let php_asp_tags=0
 19
 20 colorscheme desert

Czy jest jakiś sposób na złagodzenie tego spowolnienia?

Odpowiedzi:


2

Nie widzę tego lokalnie; pasujące pareny są natychmiast podświetlane. Spróbuj tego:

:set filetype=txt

... i sprawdź, czy coś się poprawi. Jeśli tak, coś w konfiguracji obsługi PHP vima może być nieco nie do zniesienia. Czy widzisz to samo zachowanie na bardzo małych plikach PHP? Jestem na 7.2 na Ubuntu i nie widzę tego, co widzisz.

Mam nadzieję że to pomoże!
-Paweł

AKTUALIZACJA: dziękuję za aktualizację pytania w celu włączenia .vimrc - prowadzi to do kolejnej rzeczy do przetestowania. Sprawdź, czy to nie pomoże - zmień php_folding na 1 zamiast 2. 2 składa wszystkie regiony {}, więc może to w jakiś sposób oddziaływać na logikę dopasowywania parens i powodować opóźnienie.


Mówisz także „na czas reakcji konsol” - czy korzystasz z vima w emulatorze terminali, czy na wirtualnej konsoli (na przykład ctrl-alt-F1)?
pbr

7

Wpisz to, aby wyłączyć dla poszczególnych instancji:

:NoMatchParen

(wielkie litery są ważne)

Dodaj to do ~ / .vimrc, aby wyłączyć to przed załadowaniem modułu:

let loaded_matchparen = 1

Potrzebujesz tylko jednego. Po pierwsze, musisz wpisać go za każdym razem, gdy otwierasz plik PHP, ale możesz go ponownie włączyć w dowolnym momencie. Z drugim zawsze jest on wyłączony, ale nie można go po prostu ponownie włączyć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.