Zuerst benutze ich den set foldmethod = marker, und bewege den Cursor auf {einer Funktion, benutze die zf% um die aktuelle Funktion zu falten. Aber es gibt viele Funktionen in dieser Datei. Wie kann ich alle Funktionen in dieser Datei falten? Und ich möchte nicht {} in den Funktionen falten.Wie kann ich automatisch alle Funktionen in einer Datei mit vim falten?
Antwort
Wenn Sie :set foldmethod=syntax
die Falten werden aus den Syntaxdefinitionen angegeben. Wenn Sie bevorzugen, können Sie :set foldmethod=indent
die Einrückung haben, um die Falten zu definieren.
Sie können alle Falten mit zM
schließen. Wenn Sie Falten verschachtelt haben und Ebene für Ebene folden möchten, verwenden Sie zm
. Um Falten zu öffnen, verwenden Sie zR
(alle) und zr
(Ebene für Ebene).
Ich glaube, du verstehst meine Bedeutung falsch. Zuerst muss ich für jede Funktion eine Falte einrichten. Ich möchte nur wissen, wie man die Faltung für alle Funktionen in der ersten Zeit einrichten kann. –
@Yongwei: ok, ich denke, ich verstehe es jetzt. Wolltest du das? –
zR und zm funktionieren nicht, nachdem ich foldmethod = syntax –
Wenn jede Funktion ihre öffnende Klammer auf der ersten Spalte können Sie tun:
:%g/^{/normal! zf%
Vielleicht ist es klar, dass diese Art und Weise:
:%g /^{/ normal! zf%
der g
Befehl wählt Linien der folgenden gemäß Muster und führt einen ex-Befehl aus (hier normal!
, um normale Tastatureingaben zu spielen).
Siehe :help :g
und :help :normal
Ich benutze dies - danke aber wie können Sie vermeiden, dass es über Funktionen falten? es scheint, es ist nicht nur Funktionen – serup
ich auf diese kam, als ich für eine ähnliche Sache zu suchen. Das hättest du jetzt offensichtlich herausgefunden, aber zum Nutzen anderer Leute werde ich es trotzdem beantworten.
Sie müssen in den folgenden Zeilen in .vimrc setzen:
set foldmethod=syntax
set foldnestmax=1
set foldlevel=0
falten alles von Anfang an, was gefaltet ment werden. Abhängig von der Sprache und Ihrer Falzfunktion variiert der Inhalt der Falte.
'zM' das gleiche tun. – MOHRE
Versuchen :%g/\(function\_.\{-}\)\@<={/ normal! f{zf%
Erklären bitweise:
:%g
- globaly in einer ganzen Datei suchen
/\(function\_.\{-}\)\@<={/
- Muster zuerst finden '{' nach einer 'Funktion' und setzen den Cursor auf beginnen String mit dem '{'
normal! f{zf%
- führen Sie vorwärts zu '{' f{
und machen Falte mit Bewegung '%' zf%
auf tha t Zeichenfolge
konnte Ihren Befehl nicht zur Arbeit bringen - vielleicht zeigen Beispielfunktionen – serup
Ich habe versucht, das gleiche zu tun und am Ende einfach tun:
setlocal foldmethod=marker
setlocal foldmarker={,}
Es verwendet den Marker fold Verfahren und ändert die Markierung auf eine einzelne geschweifte Klammer (standardmäßig der Marker {{{
).
Ich liebte das, ziemlich praktisch! Aber ich sollte Zeilen teilen, die eine geschweifte Klammer schließen und eine andere öffnen (wie "} else {") –
- 1. Oracle-Inline-Ansichten in Vim automatisch falten mit .vimrc
- 2. Gewohnheit in vim Falten
- 3. Wie kann ich YAML-Elemente in VIM falten?
- 4. Vim Falten exportieren?
- 5. Wie kann ich GNU C Stil Funktionen in Vim richtig falten?
- 6. VIM ausblenden (nicht falten!) Zeilen
- 7. vim Datei automatisch abgleichen
- 8. Vim: Wie halten Sie Falten auf sparen?
- 9. Wie kann ich beim Erstellen einer neuen Datei mit vim automatisch einen Skeleton-Code hinzufügen?
- 10. VIM-Syntax falten: deaktivieren Sie das Falten mehrzeiliger Kommentare
- 11. Falten nur Kommentare beim Öffnen der Datei in Vim
- 12. Vim: Syntax-Datei nicht automatisch
- 13. Wie kann ich vim das aktuelle Arbeitsverzeichnis automatisch ändern lassen?
- 14. Kommentare und alle Funktionen in vim/gvim ausblenden
- 15. Kann ich eine Datei in Vim transponieren?
- 16. Kann Vim einen Lizenzblock am Anfang einer Datei ignorieren?
- 17. Wie öffne ich automatisch eine Datei zur Bearbeitung, wenn ich eine schreibgeschützte Datei in vim schreibe?
- 18. VIM Falten für Alles außer etwas
- 19. Wie wird die Tag-Datei in vim automatisch aktualisiert?
- 20. Wie kann ich die Funktionen von VIM testen?
- 21. Wie kann ich alle Symbole in einer SVG-Datei anzeigen?
- 22. Wie kann ich alle Klassen in eine separate Datei extrahieren?
- 23. Wie kann ich das Codefalten in vim mit vim-latex deaktivieren?
- 24. In Vim, wie kann ich alle Zeilen in einer Datei mit Ausnahme der letzten 100 Zeilen löschen?
- 25. Wie kann ich meine HTML-Datei mit Vim korrekt einrücken?
- 26. Kann ich einer Header-Datei in Emacs automatisch folgen?
- 27. Vim Quickfix, mit einer vorhandenen Datei?
- 28. Die umgekehrten Schrägstriche in vim automatisch Schrägstrich
- 29. gdb, setze Haltepunkt für alle Funktionen in einer Datei
- 30. Wie kann ich automatisch alle skalaren Variablen in Perl initialisieren?
FYI vim-Distributionen kommen normalerweise mit eingebetteter Hilfe. Wenn du ': help fold' eintippst, kannst du alle faltenbezogenen Sachen sehen. –
Sie müssen hinzufügen, welche Sprache Sie interessiert (nicht alle Sprachen haben {} für einen Start!); Einklappen von Vim ist ein eigenes Thema. – Rook