Lentidão na correspondência de colchetes do Vim com a sintaxe padrão do PHP

8

Estou passando por uma lentidão perceptível no recurso de correspondência de colchetes e de destaque do Vim. Quando o cursor é colocado sobre um parêntese ou colchete, há um atraso de cerca de 300ms na capacidade de resposta do console. Como dito, isso só parece ocorrer quando se trabalha com arquivos PHP. Eu estou executando o Vim 7.2 no Debian Squeeze com um arquivo .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

Existe alguma maneira de aliviar essa desaceleração?

    
por moo 02.11.2009 / 16:12

2 respostas

2

Eu não vejo isso localmente; os parentes correspondentes são realçados instantaneamente. Tente isto:

:set filetype=txt

... e veja se as coisas melhoram. Se assim for, algo na configuração de manipulação do PHP do vim pode estar um pouco fora de sintonia. Você vê o mesmo comportamento em arquivos PHP muito pequenos? Estou no 7.2 no Ubuntu e não vendo o que você está vendo.

Espero que isso ajude!
-Paul

UPDATE: obrigado por atualizar sua pergunta para incluir o seu .vimrc - isso leva a outra coisa para você testar. Por favor, veja se isso não ajuda a situação - mude php_folding para 1 em vez de 2. 2 dobra todas as regiões {}, de modo que isso pode estar de alguma forma interagindo com a lógica de correspondência de parênteses e causando o atraso.

    
por 11.11.2009 / 01:12
7

Digite isto para desativá-lo por instância:

:NoMatchParen

(a capitalização é importante)

Adicione isto ao seu ~ / .vimrc para desativá-lo antes que o módulo seja carregado:

let loaded_matchparen = 1

Você só precisa de um. Com o primeiro, você tem que digitá-lo toda vez que abrir um arquivo PHP, mas você pode ligá-lo novamente a qualquer momento. Com o segundo, está sempre desligado, mas você não pode simplesmente ligá-lo novamente.

    
por 02.11.2009 / 17:14