Bearbeiten Sie in emacs den Abschnitt der Datei, als wäre es eine separate Datei

408
kdb

Für einige Aufgaben bevorzuge ich einzelne große Dateien gegenüber dem Aufteilen eines Projekts (z. B. eines LaTeX-Berichts, eines mittelgroßen Python-Skripts) in separate kleinere Dateien, z. B. zur einfacheren Suche und zum Suchen und Ersetzen. Für die Bearbeitung ist es jedoch oft vorzuziehen, separate Ansichten von verschiedenen Teilen eines Projekts zu haben, wobei mehrere kleine Dateien bevorzugt werden.

Ist der Modus / Paket für Emacs, der die Bearbeitung von Teilen von Dateien so zulässt, als wäre es eine separate Datei, während der Puffer mit allen anderen Ansichten der Datei synchronisiert bleibt? Ich bin mir dessen bewusst clone-indirect-buffer, aber obwohl dies einen Teil der Absicht erreicht, würde ich eine Methode vorziehen, die den indirekten Puffer auf einen bestimmten Abschnitt der Datei beschränkt. Denken Sie zB an Organisationsmodi, die C-c 'jedoch mit einem indirekten Puffer implementiert werden. Idealerweise unterstützt die Implementierung eine Syntax, um Abschnitte zu definieren.

Ich denke, der LEO-Editor baut auf dem Konzept auf, das ich für Emacs möchte, obwohl ich es nie probiert habe (funktionierte auf meinem System nicht).

2

1 Antwort auf die Frage

1
Drew

Eine Bibliothek, die ein solches Verhalten bietet, ist Narrow Indirect ( narrow-indirect.el). Sie erhalten eine andere Ansicht eines Teils des Puffers oder sogar des gesamten Puffers (Verwendung C-x h C-x 4 n n).

Es hat immer die gleichen Text- und Texteigenschaften, ansonsten ist es ziemlich unabhängig. Insbesondere können Sie einen indirekten Puffer abbrechen, ohne den Basispuffer zu beeinflussen. Sie werden wahrscheinlich indirekte eingeengte Puffer töten, anstatt sie zu vergrößern.

Sie können indirekte Puffer für mehr verwenden, als Sie vielleicht denken. Sie können Klone verwenden, die aus Teilen von Dired-Puffern stammen, um beispielsweise nützliche (aktive) Ansichten in eine Verzeichnisliste aufzunehmen. Es gibt nur wenige Tasten / Befehle (z. B. gzum Aktualisieren der Auflistung), die nicht funktionieren, da sie von der Ansicht des gesamten Dired-Puffers abhängen. Experimentieren Sie, und Sie werden ohne Zweifel interessante neue Anwendungen für indirekte Puffer finden.

Siehe auch das Emacs-Handbuch, Knoten Indirect Buffers.

Scheint zu dem, was ich meist gefragt habe. Inzwischen habe ich herausgefunden, dass die Fähigkeiten meistens bereits eingebaut sind ("clone-indirekte-buffer" - und "narrow-to -..." - Funktionen). Ich schätze, ich werde mich erst einmal mit der Ausweitung auf allgemeinere Regionen auseinandersetzen müssen (vergaß, dies in meiner Frage zu fragen). kdb vor 10 Jahren 0
Was meinen Sie mit "* Autodetection allgemeinerer Regionen *"? Drew vor 10 Jahren 0
Zum Beispiel Unterstützung für eine Syntax, die das Deklarieren von Dateisektionen unabhängig vom Inhaltstyp der Datei ermöglicht. ZB eine Funktion "eng zum Abschnitt", bei der der aktuelle Abschnitt mit einer Kommentarzeile beginnt, die "START_SECTION" oder möglicherweise "" enthält
`und endet an einer Zeile, die ein entsprechendes schließendes Tag enthält.
kdb vor 10 Jahren 0