Медлительность в сопоставлении скобок Vim с синтаксисом PHP по умолчанию


8

Я испытываю заметную медлительность в функции соответствия и выделения скобок в Vim. Когда курсор помещается над скобкой или скобкой, время отклика консоли составляет около 300 мс. Как уже говорилось, это происходит только при работе с файлами PHP. Я использую Vim 7.2 в Debian Squeeze с файлом .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

Есть ли способ облегчить это замедление?

Ответы:


2

Я не вижу этого на местном уровне; соответствующие парены сразу выделяются. Попробуй это:

:set filetype=txt

... и посмотрим, улучшатся ли вещи. Если так, то что-то в конфигурации обработки vim PHP может быть немного не в порядке. Видите ли вы такое же поведение на очень маленьких файлах PHP? Я на 7.2 на Ubuntu и не вижу, что вы видите.

Надеюсь это поможет!
-Павел

ОБНОВЛЕНИЕ: спасибо за обновление вашего вопроса, чтобы включить ваш .vimrc - это еще одна вещь для вас, чтобы проверить. Пожалуйста, посмотрите, не поможет ли это ситуации - измените php_folding на 1, а не на 2. 2 сгибает все {} области, так что это может каким-то образом взаимодействовать с логикой совпадения паренов и вызывать задержку.


Кроме того, вы говорите: «на консоли» - вы запускаете vim в эмуляторе терминала или на виртуальной консоли (например, ctrl-alt-F1)?
PBR

7

Введите это, чтобы отключить его для каждого экземпляра:

:NoMatchParen

(капитализация важна)

Добавьте это в ваш ~ / .vimrc, чтобы отключить его перед загрузкой модуля:

let loaded_matchparen = 1

Вам нужен только один. Во-первых, вы должны вводить его каждый раз, когда открываете файл PHP, но вы можете включить его снова в любое время. Со вторым он всегда выключен, но вы не можете просто включить его снова.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.