Atraso de movimento do Vim em linhas com 40 ou mais símbolos

Atraso de movimento do Vim em linhas com 40 ou mais símbolos

Gosto de delimitar visualmente o código-fonte por longas linhas de comentários: em C++ eu uso 80 /caracteres, em Python eu uso 80 #caracteres, etc. Ao longo dos anos, percebi que o Vim ocasionalmente soluça (para de responder por cerca de meio segundo ou mais) quando eu me movo; hoje descobri que isso ocorre apenas nas minhas linhas delimitadoras.

Por exemplo:

line 1
line 2
////////////////////////////////////////////////////////////////////////////////
line 4
line 5

Quando o cursor está em qualquer lugar na linha 3, qualquer movimento (para cima, para baixo, página para cima, página para baixo, esquerda, direita, $, 0, ...) quase sempre exibe o atraso; em outras linhas isso não acontece.

Brincando com isso, descobri:

  • O atraso parece ocorrer em linhas com um total de 40 ou mais símbolos ( /, -, =, ., #etc) em qualquer lugar da linha, sem incluir _(talvez porque o sublinhado esteja incluído na definição de a do Vim word).
  • O atraso não parece aumentar para linhas mais longas. Por exemplo, linhas de 1.000 /caracteres têm um atraso semelhante a 40 /caracteres.
  • O atraso só ocorre ao iniciar um “novo” movimento a partir dessa linha. Usar a repetição da tecla OS para percorrer a linha não adiciona atraso.
  • O atraso não parece relacionado ao realce de sintaxe ou plug-ins: vejo o mesmo comportamento com vim -u NONE, syntax offe filetype=.
  • GUI Vim (gvim) não parece ter esse problema.

Estou usando o MacVim 8.0 do macports no aplicativo Terminal em um MacBook Pro, mas o Vim 7.4 padrão fornecido pela Apple tem o mesmo comportamento.

Não consegui encontrar nenhuma menção a isso no Google, Stack Overflow ou Superusuário, mas é muito reproduzível no meu sistema.

Isso é um problema conhecido? Existe uma configuração de tempo de execução ou opção de construção que controla isso (máximo de símbolos suportados em uma linha ou algo assim) ou uma solução alternativa que alivia isso?

informação relacionada