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

1613
moo

Я испытываю заметную медлительность в функции соответствия и выделения скобок в 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 

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

8

2 ответа на вопрос

7
quack quixote

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

:NoMatchParen 

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

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

let loaded_matchparen = 1 

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

2
pbr

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

:set filetype=txt 

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

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

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

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

Похожие вопросы