Ich bin daran interessiert, das Falten von Code in Vim für Python-Code zu aktivieren. Ich habe mehrere Möglichkeiten bemerkt, dies zu tun.
Hat jemand eine bevorzugte Methode zum Falten von Python-Code in Vim? Dh
- Haben Sie ein bestimmtes Vim-Plugin, das Sie verwenden und mögen?
- Verwenden Sie manuelles Falten oder platzieren Sie Markierungen in Kommentaren?
- Gibt es noch andere empfohlene Methoden zum Falten von Code für Python in Vim?
set foldnestmax=2
, auf diese Weise werden die Methoden der Klassen gefaltet, interne Anweisungen jedoch nicht.Ich benutze diese Syntaxdatei für Python. Es setzt die Faltmethode auf Syntax und faltet alle Klassen und Funktionen, aber sonst nichts.
quelle
Noch ein Plugin zum Falten von Python-Code. Eher einfach, mit Docstrings umzugehen und auf dem GitHub:
SimpylFold
Genießen!
quelle
if
,for
undwhile
Blöcke, nicht wahr?Python eignet sich gut zum Falten auf Einrückungen, zum Schreiben meines eigenen Codes. Ich verwende Markierungen, da sie ein Dokument so zerkleinern können, wie Sie es möchten, und als eine Art Inhaltsverzeichnis dienen können. Ich habe dies in meinem vimrc, um zwischen den beiden zu wechseln, wenn ich jemand anderen Code ansehe.
quelle
Ich denke, dass das Falten von Einrückungen für Python in Ordnung ist. Ich mache ein mehrfach verzweigtes Git-Repo für vim-config Python / Django IDE-Ideen. Gabel weg!
http://github.com/skyl/vim-config-python-ide
quelle
Ich mag das
python_ifold
Plugin wirklich .quelle
Probieren Sie dieses Plugin aus:
http://vim.sourceforge.net/scripts/script.php?script_id=515
quelle
Für mich ist das ideale Falten, nur die
class
unddef
Blöcke zu falten. Einrückungsfalten ist zu viel für meinen Geschmack. Ich denke, eine elegante Lösung besteht darin, das von Tomas erwähnte Syntaxsystem wie dieses zu verwenden . Diese soll jedoch die ursprüngliche Syntaxdatei ersetzen und ist möglicherweise älter als das Original (dh das Skript erwähnt die Python 3-Syntax nicht).Meine Lösung besteht darin,
~/.vim/syntax
eine Dateipython.vim
mit nur den wichtigen Zeilen (aus dem obigen Skript) in den Ordner zu legen :Dann einfach die Faltung mit aktivieren
:set foldmethod=syntax
.quelle
class
es unddef
s, wenn sie am Anfang einer Zeile stehen. Da ich den Ausdruck kaum lesen kann, habe ich Probleme, ihn zu optimieren, um ihn anzupassen^def
und^class
. Dies ist jedoch merkwürdig, da\s*
es gut damit umgehen sollte.Die Python-Quelle enthält ein Vim-Syntax-Plugin sowie eine benutzerdefinierte Vimrc-Datei. Überprüfen Sie die Python-FAQ auf vim
quelle
In Ihrem
.vimrc
:Dann
zM
alle maskieren, um allezR
zu erweitern. Ich fügte hinzu:So können Sie
z1
undz2
nach und nach unaufmerksam.quelle
Ich mag dieses kleine Vim-Skript, das ich für .vimrc geschrieben habe, sehr. Es wird abgebildet
alt+1
, um die erste Python-Einzugsebene (Klassendefinitionen und -funktionen)alt+2
zu falten, die zweite Ebene (Klassenmethoden) zu falten undalt+0
alles zu entfalten. Es stellt sicher, dass nur eine Ebene gefaltet wird und keine der verschachtelten Unterebenen gefaltet wird. Sie können weiterhin dieza
Faltung für den aktuellen Block umschalten. Beachten Sie, dass in^[0
die^[
istalt
für meinen Terminal. Sie haben nicht viel Erfahrung mit VIM-Skripten. Sie können also gerne Vorschläge zur Funktion machen :)quelle