59 votes

Configuration de Vim pour Python

J'aime beaucoup l'éditeur Emacs pour Python en raison de sa fonction de tabulation intelligente. Par exemple, si j'ai quelque chose comme ceci

def foo():
    if bar:
         blah
         [b]eep

et que j'appuie sur la touche tabulation du curseur (qui se trouve sur le b de beep), il n'insère pas de nouvelle tabulation, ce qui entraîne une erreur de syntaxe, mais il passe par tous les niveaux possibles de beep. Existe-t-il un moyen d'obtenir cet effet dans Vim ?

92voto

mvanveen Points 2067

En général, vim est un outil très puissant langage courant (les macros étendent ce principe, mais nous allons l'ignorer pour l'instant). C'est parce que vim est une fine couche au-dessus de ed, et ed n'est pas beaucoup plus qu'un éditeur de ligne qui parle regex. Emacs a l'avantage d'être construit au-dessus d'ELisp, ce qui lui donne la capacité d'analyser facilement des grammaires complexes et de réaliser des astuces d'indentation comme celle que vous avez partagée ci-dessus.

Pour être honnête, je n'ai jamais pu plonger dans les profondeurs d'emacs car il est tout simplement délicieux de méditer dans ma grotte vim. Ceci étant dit, jetons-nous à l'eau.

Pour commencer

Janus

Pour les débutants, je recommande vivement d'installer l'application readymade Plugin Janus (pour info, le nom provient d'un épisode de Star Trek mettant en scène Janus Vim). Si vous voulez un raccourci rapide vers un IDE vim, c'est le meilleur rapport qualité/prix.

Je ne l'ai jamais beaucoup utilisé, mais j'ai vu d'autres personnes l'utiliser avec bonheur et ma configuration actuelle est fortement empruntée à une ancienne construction Janus.

Vim Pathogène

Sinon, partez à la découverte de votre propre pays ! Je vous recommande vivement d'installer pathogène vim si vous voulez voir l'univers des plugins vim.

C'est une sorte de gestionnaire de paquets. Une fois que vous l'avez installé, vous pouvez git clone à votre ~/.vim/bundle et ils sont auto-installés. Fini les maux de tête liés à l'installation, à la maintenance ou à la désinstallation des plugins !

Vous pouvez exécuter le script suivant depuis la page GitHub pour installer pathogen :

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -so ~/.vim/autoload/pathogen.vim \
    https://raw.github.com/tpope/vim-pathogen/HEAD/autoload/pathogen.vim

Liens utiles

Voici quelques liens sur l'extension de vim que j'ai trouvés et appréciés :

26voto

Greg Points 209

Pour ceux qui arrivent autour de l'été 2013, je crois qu'une partie de ce fil est dépassée.

J'ai suivi ce mode d'emploi qui recommande Vundle plutôt que Pathogen. Après un jour d'utilisation, j'ai trouvé l'installation des plugins triviale.

Le plugin klen/python-mode mérite une mention spéciale. Il fournit pyflakes et pylint parmi d'autres fonctionnalités.

Je viens de commencer à utiliser Valloric/YouCompleteMe et je l'adore. Il a l'auto-complétion C-lang et python fonctionne aussi très bien grâce à l'intégration de jedi. Il pourrait bien remplacer jedi-vim comme le montre cette discussion /davidhalter/jedi-vim/issues/119.

Enfin, la navigation sur le site /carlhuda/janus plugins fourni est un bon guide vers des scripts utiles dont vous ne soupçonnez peut-être pas l'existence, tels que NerdTree, vim-fugitive, syntastic, powerline, ack.vim, snipmate...

Tous les fichiers ci-dessus se trouvent sur Github, vous pouvez les trouver facilement avec Google.

15voto

Kimvais Points 12453

Mettez ce qui suit dans votre .vimrc

autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
autocmd BufRead *.py set nocindent
autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
filetype plugin indent on

Voir également le instructions détaillées

J'utilise personnellement l'outil de JetBrain PyCharm avec le Plugin IdeaVIM lorsqu'il s'agit de faire quelque chose de complexe, pour une simple édition, les ajouts de .vimrc semblent suffisantes.

3voto

orluke Points 112

Il existe une collection groupée de plugins Vim pour le développement Python : http://www.vim.org/scripts/scripts.php?script_id=3770

2voto

Will Sams Points 92

Sous Linux, ce qui a fonctionné pour moi, c'est le guide de John Anderson (sontek), que vous pouvez trouver à ce lien . Cependant, j'ai triché et j'ai simplement utilisé sa configuration facile à partir de son dépôt Git :

git clone -b vim https://github.com/sontek/dotfiles.git

cd dotfiles

./install.sh vim

Sa configuration est assez à jour à ce jour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X