Je suis intéressé par l'activation du pliage de code dans Vim pour le code Python. J'ai remarqué plusieurs façons de le faire.
Quelqu'un a-t-il un moyen préféré de plier du code Python dans Vim? C'est à dire,
- Avez-vous un plugin Vim particulier que vous utilisez et aimez?
- Utilisez-vous le pliage manuel ou placez-vous des marqueurs dans les commentaires?
- Y a-t-il d'autres moyens recommandés pour faire le pliage de code pour Python dans Vim?
set foldnestmax=2
, de cette façon les méthodes des classes sont repliées, mais les déclarations internes ne le sont pas.J'utilise ce fichier de syntaxe pour Python. Il définit la méthode de pliage sur la syntaxe et replie toutes les classes et fonctions, mais rien d'autre.
la source
Encore un autre plugin pour plier le code Python. Plutôt simple, gestion des docstrings, et sur le GitHub:
SimpylFold
Prendre plaisir!
la source
if
,for
etwhile
bloque, n'est-ce pas?Python est bien adapté pour le pliage sur indent, peu pour écrire mon propre code, j'utilise des marqueurs car ils peuvent réduire un document comme vous le souhaitez et peuvent servir de sorte de table des matières. J'ai ceci dans mon vimrc pour basculer entre les deux lorsque je regarde le code de quelqu'un d'autre.
la source
Je pense que le pliage en retrait est très bien pour python. Je crée un référentiel git multi-branches pour les idées de l'IDE vim-config python / django. Fuyez!
http://github.com/skyl/vim-config-python-ide
la source
J'aime vraiment le
python_ifold
plugin .la source
Essayez ce plugin:
http://vim.sourceforge.net/scripts/script.php?script_id=515
la source
Pour moi, le pliage idéal est de ne plier que les blocs
class
etdef
, le pliage en retrait est trop à mon goût. Je pense qu'une solution élégante est d'utiliser le système de syntaxe comme celui mentionné par Tomas. Cependant, celui-ci est destiné à remplacer le fichier de syntaxe d'origine et il peut finir par être plus ancien que l'original (c'est-à-dire que le script ne mentionne pas la syntaxe Python 3).Ma solution est de placer dans le
~/.vim/syntax
dossier un fichier nommépython.vim
avec juste les lignes importantes (tirées du script ci-dessus):Ensuite, activez simplement le pliage avec
:set foldmethod=syntax
.la source
class
etdef
s» s'ils se trouvent au début d'une ligne. Comme je peux à peine lire l'expression, j'ai du mal à la modifier pour qu'elle corresponde à^def
et^class
. C'est curieux car cela\s*
devrait bien gérer cela ..La source Python est fournie avec un plugin de syntaxe vim avec un fichier vimrc personnalisé. Consultez la FAQ python sur vim
la source
Dans votre
.vimrc
:Puis
zM
tout masquerzR
pour tout développer. J'ai également ajouté:Vous pouvez donc
z1
etz2
vous désindenter petit à petit.la source
J'aime vraiment ce petit script vim que j'ai écrit pour .vimrc. Il mappe
alt+1
pour plier le premier niveau d'indentation python (définitions de classe et fonctions),alt+2
pour plier le deuxième niveau (méthodes de classe) etalt+0
pour tout déplier. Il s'assure qu'il ne plie qu'un seul niveau et ne plie aucun des sous-niveaux imbriqués. Vous pouvez toujours utiliserza
pour basculer le pliage pour le bloc actuel. Notez que dans^[0
, le^[
estalt
pour mon terminal. Vous n'avez pas beaucoup d'expérience dans le script vim, alors n'hésitez pas à faire des suggestions sur la fonction :)la source