Laut WIKI können Skripte basierend auf der Syntax gefaltet werden. Hat jemand eine Lösung, um Python-Docstrings zu falten?
Grundsätzlich muss ich nur folden """ text between triple quotation marks """
:
Vielen Dank.
Laut WIKI können Skripte basierend auf der Syntax gefaltet werden. Hat jemand eine Lösung, um Python-Docstrings zu falten?
Grundsätzlich muss ich nur folden """ text between triple quotation marks """
:
Vielen Dank.
Antworten:
Es gibt ein paar funky Faktoren, die wir beim Spielen mit Falten berücksichtigen sollten (sie sind kompliziert und nicht leicht zu verstehen, ohne in die Dokumente zu graben.)
foldmethod
aufsyntax
war mein Problem, als ich gegen Fold kämpfte, aber schauen wir uns die Dokumente an, um weitere Informationen zu erhalten.Die Hauptsache ist, dass
sync fromstart
dies ein nützlicher Helfer ist, wenn Sie einen regulären Ausdruck haben, der in der gesamten Datei übereinstimmt und nur den Header abfangen möchte. In Ihrem Fall sollten Sie dies ignorieren können, aber nur etwas, das Sie beachten sollten.Da das
"""
ziemlich vorhersehbar ist, können wir das vereinfachenstart
undend
so aussehen:Sowohl für die
start
undend
wir versuchen , nur passen auf'"""'
(oder regexp) für die Script - Tags. Ich habe den obigen Code nicht getestet, da ich kein großer Python-Typ bin, aber ich wette, Sie können ihn von hier aus herausfinden.quelle
foldingmethod
aufsyntax
in buffer.fold
die zu den Optionen hinzugefügt wurden, und es funktioniert ziemlich gut für mich.Hier ist eine bessere Methode, mit der alle Hervorhebungen in Zeichenfolgen in dreifachen Anführungszeichen beibehalten werden:
Fügen Sie dies hinzu
~/.vim/after/syntax/python.vim
.Dieser Befehl stammt genau von
/usr/share/vim/vim74/syntax/python.vim
und hat nur dasfold
Schlüsselwort hinzugefügt. Warum bleibt die Hervorhebung erhalten, wenn Dans Antwort dies nicht tut? Der Schlüssel ist, dass dies hat:Normalerweise wendet Vim nur einen Syntaxbereich an, aber
contains=
Sie können damit feststellen, dass ein Syntaxbereich andere Syntaxbereiche enthalten kann .Es wird auch als hervorgehoben,
String
weil es tut:Es reicht nicht aus, nur einen Syntaxbereich zu definieren. Sie müssen diesen mit einer Markierungsgruppe verknüpfen .
quelle