desabilitar o realce da sintaxe no vim para nova entrada no modo de inserção

0

Quando edito um script de shell com o destaque da sintaxe ativado no vim, no momento em que digito Opening "ou $ {, o editor destaca novamente o restante do arquivo como se fosse parte da string ou do nome da variável. o fechamento "ou} é realçado novamente. Isso leva a muitas piscadas.

É possível desativar esse realce ao vivo global? Por exemplo, existe uma opção para não alterar nenhum destaque até eu sair do modo de inserção? Ou talvez altere o realce apenas para as linhas afetadas pela nova inserção e mantenha o realce pelo restante das linhas até que eu termine a edição?

Igor Bukanov
fonte

Respostas:

1

Infelizmente isso não é possível. Em teoria, o realce da sintaxe poderia adicionar asserções às definições que dizem "só correspondem a isso se o cursor não estiver dentro", mas como isso tornaria as expressões regulares mais complicadas (e potencialmente também muito mais lentas), isso não é feito.

Você só pode desativar / ativar completamente o realce da sintaxe ao entrar / sair do modo de inserção, mas isso criaria ainda mais intermitência (e potencialmente causaria lentidão, pois todo o buffer precisaria ser analisado novamente).

O único conselho prático que posso oferecer é usar um plug-in de fechamento automático (a página Wiki de caracteres de fechamento acrescentado automaticamente descreve algumas configurações simples e uma lista de plug-ins) que fecha automaticamente qualquer parêntese aberto e, assim, evita o problema.

Ingo Karkat
fonte
Hum, isso significa que o Vim faz uma sintaxe completa destacando cada pressionamento de tecla sem demora? Outros editores geralmente realçam após um atraso para não realçar quando o usuário escreve o texto e é possível pelo menos definir esse atraso por meio de preferências.
Igor Bukanov 01 de
Sim, a sintaxe pode se adaptar após cada pressionamento de tecla; e isso é feito de forma síncrona. O escopo considerado é definido por:syn sync
Ingo Karkat 01/02