Maison >développement back-end >Tutoriel Python >Meilleures pratiques pour écrire Python dans Vim

Meilleures pratiques pour écrire Python dans Vim

高洛峰
高洛峰original
2017-02-09 10:56:111624parcourir

Publions d'abord une photo :

用 Vim 写 Python 的最佳实践

Pour certains petits projets Python, utiliser vim est un bon choix. Le contenu de cet article est compilé à partir de mes réponses sur Zhihu. Quelle est la meilleure pratique pour écrire Python dans Vim ? , le contenu suivant est un complément aux anciennes réponses de Zhihu, en particulier celles qui sont principalement axées sur vim8. Si vous souhaitez plus de contenu, vous pouvez consulter certaines des réponses de Zhihu à cette question.

Vérification de la syntaxe

Si vous utilisez vim8, vous pouvez utiliser la détection asynchrone w0rp/ale au lieu de la syntaxe. Vous n'avez plus à envier le flycheck, ni à rester bloqué à cause de la vérification de la syntaxe. .

Concernant la configuration personnalisée d'ale, elle est en fait un peu "pointilleuse". Généralement, utiliser celle par défaut devrait suffire, mais j'aime les choses sophistiquées, alors j'ai essayé. Les éléments impliqués peuvent être assez détaillés. Vous pouvez directement consulter space-vim: syntax-checking pour comprendre la configuration générale. L'objectif principal est de réextraire et d'afficher le contenu de la ligne d'état fourni par ale. S'il n'y a pas d'erreur de syntaxe, elle ne sera pas affichée dans la ligne d'état. S'il y a un avertissement ou une erreur, elle peut être distinguée par différentes couleurs.

用 Vim 写 Python 的最佳实践

Quant au signe d'avertissement ou d'erreur sur le côté, j'aime qu'il soit plus propre et j'utilise juste la couleur de premier plan pour le distinguer. Parfois, cela ressemble à des taches dessus. , je ne pense pas que ça ait l'air bien.

用 Vim 写 Python 的最佳实践

用 Vim 写 Python 的最佳实践

amélioration de la syntaxe

la mise en évidence intégrée de vim pour python est un peu faible, même self n'est pas mis en évidence pour me Up, cela peut être amélioré via python-mode/python-mode :

    hi pythonSelf            ctermfg=174 guifg=#6094DB cterm=bold gui=bold

Pour plus de détails, vous pouvez voir space-vim ici : python layer

dans la syntaxe/python de python -mode Dans .vim, vous pouvez voir un groupe de surbrillance plus détaillé que la syntaxe/python.vim fournie avec vim. Il ne devrait pas être difficile de comprendre chaque contenu. Modifiez simplement le style de surbrillance en fonction de la table des couleurs. Il s'agit du tableau de comparaison des couleurs du terminal 256. 256 couleurs du terminal et leur équivalent 24 bits (ou similaire), il s'agit du tableau de comparaison des couleurs de l'interface graphique. Tableau de couleurs HTML complet.

L'avantage est que l'effet souhaité est entièrement personnalisable, mais il présente également des inconvénients car il peut ne pas convenir à tous les thèmes vim. Lorsque vous changez de thème, ces surlignages personnalisés par Python peuvent ne pas correspondre un peu. Même si nous ne comptons que les thèmes vim populaires, il y a probablement deux chiffres. Certains sont des tons froids, certains sont des tons chauds, certains sont principalement bleus et certains sont principalement rouges. Il ne devrait pas être facile de trouver des couleurs polyvalentes. Cependant, il se peut qu'il n'y ait que quelques thèmes que tout le monde aime, alors choisissez vous-même...

En fait, le mode python est un peu un chef-d'œuvre, comprenant de nombreuses fonctions d'utilisation de vim pour écrire du python, si vous êtes intéressé Vous pouvez essayer de l'utiliser pour "conquérir le monde d'un seul coup". Cependant, pour l'instant, je n'aime que cette partie.

Formatage du code

Cela peut être effectué via google/yapf. Après avoir installé yapf, <LocalLeader>= peut formater le fichier actuel comme suit :

autocmd FileType python nnoremap <LocalLeader>= :0,$!yapf<CR>

Auto-complétion.

C'est parce que j'utilise principalement vim, donc j'utilise YouCompleteMe. Le backend actuel utilise le jedi-vim déjà mentionné. Si vous n'aimez pas ycmd, vous pouvez essayer neovim. >

import pour trier diverses

importations Cela ne semble-t-il pas un peu compliqué ? Utilisez timothycrosley/isort pour l'organiser :

autocmd FileType python nnoremap <LocalLeader>i :!isort %<CR><CR>
Opération en un clic

Cela peut être amélioré par skywind3000/asyncrun.vim, remplacez simplement le

précédent par ! Dans en fait, il y a encore quelques petits points à noter : AsyncRun!

L'opération en un clic de nombreuses personnes peut ressembler à ceci :

...
exec "!g++ % -o %<"
exec "!time ./%<"
...
Vous pouvez directement remplacer ce qui précède

par ! ? La réponse est non. Si vous souhaitez obtenir l'effet précédent, cela devrait être comme ceci : AsyncRun!

exec "AsyncRun! g++ -stdc++11 % -o %<; time ./%<"
Utilisez des points-virgules pour lier plusieurs commandes (linux) ou & pour lier plusieurs commandes (windows). , vous pouvez voir ici .

La configuration spécifique et complète de vim est ici : >>> space-vim (Si vous pensez que l'écriture est bonne, vous pouvez aller sur github et lui donner une étoile.
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn