Como depurar 'Erro ao processar a função' em 'vim' e 'nvim'?

1

TL; DR

Como encontrar exatamente onde vim ou nvim erro começou (qual arquivo?) quando estou interessado em corrigir o problema real e não apenas remover o plugin ruim? Qualquer coisa melhor que strace e adivinhação para encontrar a origem do erro?

Problema

Costumo adicionar um plugin ao meu vim ou nvim config e acabo recebendo erros nos ganchos (buffer aberto, fechar, escrever):

"test.py" [New] 0L, 0C written
Error detected while processing function 343[12]..272:
line    8:
E716: Key not present in Dictionary: _exec
E116: Invalid arguments for function get(a:args, 'exec', a:1['_exec'])
E15: Invalid expression: get(a:args, 'exec', a:1['_exec'])
E716: Key not present in Dictionary: _exec
E116: Invalid arguments for function get(a:args, 'exec', a:1['_exec'])
E15: Invalid expression: get(a:args, 'exec', a:1['_exec'])

O problema é que eu não tenho idéia de onde eles vêm, só recebo um número de linha de arquivo desconhecido e sei que não é o meu arquivo vim / nvim config.

    
por cprn 05.10.2016 / 00:34

1 resposta

1

Este plugin específico foi escrito em um estilo orientado a objetos. O 343[12]..272 refere-se a uma função anônima (numerada) em um objeto Dicionário .

Se você conhece o plugin (recentemente instalado), você pode usar o arquivo :breakadd file */pluginname.vim no seu ~/.vimrc para parar e então percorrer (com :next ) linha por linha.

Como alternativa, você pode capturar um log completo de uma sessão do Vim com vim -V20vimlog . Depois de encerrar o Vim, examine o arquivo de log vimlog da mensagem de erro e suspeite de comandos antes disso.

    
por 05.10.2016 / 14:12

Tags