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

8

Estou experimentando uma lentidão perceptível no recurso de correspondência e destaque do Vim. Quando o cursor é colocado entre parênteses ou colchete, há um atraso de cerca de 300ms na capacidade de resposta do console. Como afirmado, isso parece ocorrer apenas ao trabalhar com arquivos PHP. 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?

moo
fonte

Respostas:

2

Eu não vejo isso localmente; o parens correspondente é destacado instantaneamente. Tente o seguinte:

:set filetype=txt

... e veja se as coisas melhoram. Nesse caso, algo na configuração de manipulação de 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 estou vendo o que você está vendo.

Espero que isto ajude!
-Paulo

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

pbr
fonte
Você também diz "na capacidade de resposta dos consoles" - você está executando o vim em um emulador de terminal ou em um console virtual (ctrl-alt-F1, por exemplo)?
PBR
7

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

:NoMatchParen

(a capitalização é importante)

Adicione isso ao seu ~ / .vimrc para desativá-lo antes do carregamento do módulo:

let loaded_matchparen = 1

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

charlatão quixote
fonte