Mapear comandos vim para recursos de tempo de compilação

2

O Vim tem a noção de recursos , ou seja, subconjuntos de funcionalidades que podem ou não ser suportadas em uma instalação real, com base em sinalizadores em tempo de compilação. A presença de um recurso pode ser verificada com a função has() , e todos os recursos possíveis podem ser enumerados com o comando feature-list .

Eu quero que meu script vim seja mais robusto, verificando os recursos antes de usá-los. Meu problema é que não é documentado explicitamente qual comando depende de qual recurso.

Exemplo específico: algumas distribuições do Linux enviam vim.tiny por padrão, que é uma versão com muito recurso restrito de vim . Se eu iniciar o vim.tiny , meu .vimrc exibirá muitas mensagens de erro. Por exemplo. O comando let não está disponível, mas não é óbvio qual recurso fornece esse comando. Como eu poderia determiná-lo de forma confiável? Ou, se não for possível, como eu faria a minha inicialização do vim se degradar normalmente para vim.tiny ?

    
por blintend 17.01.2014 / 22:28

1 resposta

2

A segmentação de um plugin Vim para vim-tiny é difícil, pois consiste em um conjunto de recursos limitado muito . É uma substituição enxuta do vi , suportando apenas alguns mapeamentos, nada mais.

Dito isto, é realmente possível detectar e afirmar certos recursos, usando has() e exists() . Os erros em :let poderiam ser evitados colocando :if 1 , mas como eu disse, melhor visar um Vim "normal" e apenas adicionar verificações de disponibilidade de material mais recente (como ocultar , persistente desfazer, introduzido no Vim 7.3) e correções essenciais (mas apenas se você precisar deles).

    
por 17.01.2014 / 23:14

Tags