TL; DR:
Exigindo +python
/ +python3
suporte para um plug-in de desenvolvimento baseado em python. Isso parece completamente razoável.
Sobre plugins Vim e comportamento humano
Geralmente, os humanos falantes querem que as coisas pareçam simples e "apenas funcionem". Quando se trata de plug-ins do Vim, o Vimmers normalmente deseja plug-ins com pouca ou nenhuma dependência. Basicamente, deve ser tão simples quanto um git clone
e / ou algumas linhas em seu vimrc
arquivo. Quanto mais um plug-in precisar ser configurado para funcionar inicialmente ou exigir alguma dependência, basta adicionar uma barreira à entrada.
Um ótimo exemplo desse comportamento é CommandT vs CtrlP :
- CommandT usa Ruby e C para realizar a descoberta difusa
- CtrlP, por outro lado, é puro VimL / Vimscript
- CommandT é tipicamente mais rápido que CtrlP baunilha
Agora você assumiria que o CommandT é mais popular, especialmente desde que foi lançado primeiro, mas esse não é o caso. O CommandT possui aproximadamente 2000 usuários e o CtrlP possui aproximadamente 20.000 usuários . Na minha opinião, os requisitos do CommandT causam uma barreira à entrada. Você simplesmente não pode fazer git clone
o vim dotfiles e estar em funcionamento em uma nova máquina com o CommandT, como você pode com o CtrlP.
Contraponto:
Isso é C + Ruby não +python
/ +python3
. Existe suporte embutido para Python. Você está absolutamente correto. Um exemplo que comprova esse ponto seria Gundo (~ 5.000) usando +python
vs undotree (~ 1.000), que é puro VimL. Eu argumentaria, na minha opinião pessoal, que o undotree é menos conhecido que o Gundo (o primeiro no mercado) e o fato de muitos estarem usando o undotree pode muito bem ter a ver com o fato de ser puro VimL vs python.
Bom o suficiente para mim, vou usar o Python no meu plugin Vim!
No final do dia, você precisa saber um pouco sobre o Vim e alguns VimL para fazer o plug-in do Vim em Python. O vim
módulo é muito melhor do que era antes, mas ainda requer uma quantidade razoável de situações semelhantes a avaliações do VimL:
vim.command("set tw=72")
vim.command("%s/aaa/bbb/g")
text_width = vim.eval("&tw")
Veja :h python-vim
.
Você também precisará do VimL para "inicializar" a parte python do seu plug-in. Portanto, não há como escapar do VimL, apenas reduzindo a quantidade.
Conclusões
Se você precisar +python
/ +python3
certamente use-o. Parece que você tem um maravilhoso caso de uso para suporte a python. No entanto, na minha opinião, você não escapará completamente do VimL / Vimscript. Eu recomendaria fazer coisas do Vim no VimL e usar python para coisas difíceis / difíceis / lentas de fazer no VimL.