Quando usar o diretório after /?

14

Entendo que é o lugar para colocar coisas que devem ter a palavra final e não serem substituídas por outra fonte, mas não sei como decidir quando colocar algo, digamos, em ~/.vim/after/ftplugin/vez de ~/.vim/ftplugin/.

As pessoas geralmente usam ~/.vim/ftplugin/e só movem coisas ~/.vim/after/ftplugin/se observam comportamentos indesejados ou apenas colocam tudo no diretório posterior imediatamente?

ivan
fonte

Respostas:

20

Geralmente, se você deseja adicionar seu próprio plug-in ou substituir um plug-in padrão pelo seu, ele entrará em ~/.vim/pluginou ~/.vim/ftplugin. Se, em vez disso, você deseja manter a funcionalidade de um plug-in existente, mas adicioná-lo, ou alterar apenas algumas configurações feitas por ele, seu plug-in entrará em ~/.vim/after/pluginou ~/.vim/after/ftplugin.

garyjohn
fonte
Por alguma razão, sempre presumi que o Vim pesquisava o caminho de execução e procurava cada arquivo que correspondesse aos critérios de pesquisa, em vez de apenas buscar a primeira correspondência encontrada. Parece que as coisas no diretório posterior recebem esse tipo de tratamento "além de", mas talvez tudo o resto seja tratado mais como a variável PATH do Unix, onde a primeira partida vence?
ivan
5
O Vim fornece cada arquivo que corresponde aos critérios de pesquisa, mas os plug-ins escritos corretamente têm um teste próximo ao topo do formulário if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1,. O plug-in carregado primeiro "vence" e os plug-ins subseqüentes com o mesmo nome saem mais cedo através do finishcomando É assim que um plug-in no seu ~/.vim/plugindiretório, por exemplo, pode impedir que um plug-in $VIMRUNTIME/pluginseja carregado completamente. Esse teste não está incluído nos afterarquivos de plug-in.
garyjohn
Ok, acho que entendi agora. Como todos os arquivos correspondentes serão originados, use uma finishcláusula de guarda quando desejar carregar apenas a primeira correspondência e use o diretório posterior ( sem uma finishcláusula de guarda) quando precisar substituir uma configuração afetada por uma das outras fontes.
ivan
1

Se o vanilla vim reconhecer um determinado tipo de arquivo e você desejar modificar o comportamento enviado, suas próprias configurações serão acessadas ~/.vim/after/ftplugin/

Naumann
fonte