Frage

Auf SO gibt es mehrere Fragen dazu, wie man Code in Emacs faltet, ohne beispielsweise Sonderzeichen wie „Markierungen“ in den Kommentaren hinzufügen zu müssen.Jemand sagte, dass es „keine perfekte Lösung“ gebe.
Es scheint, dass dies durch Parsen der Quelle des zu schreibenden Programms und Suchen nach passenden Klammern oder Klammern oder durch Einrücken erfolgen könnte.Sie können auch eine Kombination von Skripten verwenden, die unterschiedliche Methoden verwenden.
Warum wird allgemein angenommen, dass es keinen „perfekten“ und unkomplizierten Weg gibt, Code in Emac zu falten?Gibt es etwas in Emacs oder seiner Architektur, das das Programmieren erschwert?Wenn es einfach wäre, würde man nach so vielen Jahren, in denen kluge Leute Emacs verwenden, denken, dass jemand es geschrieben hätte.

War es hilfreich?

Lösung

Sie sollten mit Hideshow spielen (hs-minor-mode) kombiniert mit fold-dwim.el. Es tut genau das, was Sie vorgeschlagen haben - sucht nach passenden Zahnspangen/Parens und kann auf die Eindrücke zurückgreifen.

Es gibt eine robuste Faltungslösung für die meisten gängigen Sprachen, und wenn es nicht gibt, sind alle Faltpakete sehr anpassbar. Tatsächlich ist der einzige Nachteil die Verbreitung von Faltmethoden (fold-dwim hilft ziemlich viel damit); Früher dachte ich, weil mich niemand auf eine endgültige Lösung verweisen konnte, war die Faltung schwer oder unmöglich - tatsächlich ist das Gegenteil wahr. Sie müssen nur ein wenig experimentieren, um zu sehen, was für Sie am besten funktioniert.

Ich habe benutzt folding.el (zB, um Sachen in meinem zu gruppieren .emacs), outline-minor-mode, und jetzt Hideshow. Es besteht die Möglichkeit, dass keiner von ihnen genau so funktioniert, wie Sie es möchten (z. folding.el), aber es stellt sich als einfach heraus. Die Standard -Schlüsselbindungen können etwas barocken sein, dies wird jedoch von behoben fold-dwim und/oder hideshow-org (Sehr empfohlen für Hideshow, vgl. hideshow-orgDas Verhalten für andere Faltmodi mit einem schnellen und schrägen ELISP und fold-dwim). Sobald Sie Ihr bevorzugtes Setup herausgefunden haben, schalten Sie ihn einfach automatisch über Hooks oder Puffer-lokale Variablen ein und schauen Sie sich Ihr Code ab :) (Siehe unten, beachten Sie den Klickablen +'S am Rand).

ALT Text http://img198.imageshack.us/img198/4029/screenshot1oc.png

Andere Tipps

Sie sollten sich in Cedet schauen. Es macht das Code-Falten und viele andere ausgefallene Funktionen, nach denen Sie wahrscheinlich suchen, wenn Sie von einer IDE zu EMACs wechseln.

http://cedet.sourceforge.net/

Suchen Sie insbesondere nach "Global-Semantic-Tag-Folding-Modus"

Sie benötigen nichts mehr. Aktivieren Sie einfach den Umriss-Minor-Modus für Dateitypen, die Sie falten möchten.

Tatsächlich gibt es jedoch verschiedene Lösungen für EMACs; Ich habe einige von ihnen aufgelistet (denen, die ich zufällig begegnet bin) http://en.wikipedia.org/w/index.php?title=Code_Folding&oldid=375300945#cite_note-2.

Es fehlt mir jedoch Dinge: In einigen Fällen möchte ich mehrere Mechanismen kombinieren: Zum Beispiel möchte ich zum Markdown umrissbasierte Falten (für Abschnitte) und Einrückungsfaltungen (für Einrückungsbasierte Falten verwenden Angebote, Codeblöcke usw.) - Damit sich die Implementierung eines vollständigen Parsers für den Markdown nicht darum kümmern.

Hier sind sie:

Token-basierte Faltung in EMACs

Token-basierte Faltung in EMACs wird durch die impustert Falten Kleiner Modus.

Eindrückungsbasierte Faltung in EMACs

Man kann das verwenden set-selective-display Funktionen in EMACs, um Linien basierend auf der Eindrückungsstufe zu verbergen, wie in der vorgeschlagen Universal Code Folding Hinweis.

Syntax-abhängige Faltung in EMACs

Die syntaxabhängige Faltung in EMACs wird unterstützt von:

Mehrere Faltungsmechanismen werden durch die vereintFold-Dwim Schnittstelle.

Siehe auch http://www.emacswiki.org/emacs/categoryHidestuff.

Faltung von benutzer ausgewählten Regionen in EMACs

Die Faltung von benutzer ausgewählten Regionen in EMACs wird von der implementiert Versteck Befehl.

Ich habe verwendet Faltmodus für einige Zeit.Mit der automatischen Einfügung von Vorlagen und Abkürzungen funktioniert es für mich recht gut, wenn es um einige schöne Codebausteine ​​geht.

Es war schon immer ein Wunsch von mir, den Puffer gefaltet (zum Drucken/Versenden per E-Mail) herstellen zu können.Einige meiner Faltetiketten dienen der Sicherheit bzw. dem Verstecken von Passwörtern.

Ja, schließlich ist Code -Falten in EMACs da. Versuchen Sie es mit Yafolding, die auf der Melpa.org -Paketbibliothek anwesend sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top