Kann ich zwei Ansichten zu einer Datei haben - eine verengte eine nicht?

13

Ich bearbeite eine Datei, abc.org, und rufe org-strict-to-block auf, um sie auf einen Codeblock zu beschränken, den ich bearbeiten möchte. Für den Bearbeitungsprozess muss ich auf einen anderen Teil von abc.org zugreifen und möchte ihn nur in einem anderen Fenster anzeigen. Also mache ich "Cx 2" und finde, dass das Fenster das abc.org zeigt, aber auch verengt. Ist es möglich, zwei "Ansichten" in der Datei zu haben? Einer verengt und einer nicht?

Ich habe die sieben mit Verengung gekennzeichneten Fragen überprüft und keine ähnliche Frage gefunden.

Matthias
quelle

Antworten:

15

Ich denke, Sie suchen clone-indirect-buffer-other-window( C-x 4 cstandardmäßig gebunden ).

Beachten Sie, dass dadurch ein verknüpfter Klon des Puffers erstellt wird. Sie müssen daher daran denken, den geklonten Puffer sowie das Fenster zu beenden, um zu vermeiden, dass sich immer mehr Puffer mit demselben Inhalt ansammeln.

Stuart Hickinbottom
quelle
4

Genau das ist der Zweck der Bibliothek Narrow Indirect ( narrow-indirect.el).

Sie erhalten Eingrenzungsbefehle, mit denen ein indirekter Puffer erstellt wird, der ein Klon des aktuellen Puffers ist und auf einen bestimmten Teil davon eingegrenzt wird. Sie können auf die aktuelle Definition, den aktiven Bereich oder die aktuelle Seite eingrenzen. Vorgeschlagene Tastenkombinationen:

(define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-other-window)
(define-key ctl-x-4-map "nn" 'ni-narrow-to-region-other-window)
(define-key ctl-x-4-map "np" 'ni-narrow-to-page-other-window)

Es bietet zwei Möglichkeiten, indirekte Puffer von nicht indirekten Puffern für die von ihm erstellten indirekten Puffer zu unterscheiden:

  • Der Puffername eines indirekt verengten Puffers beginnt mit einem Präfix, das Sie mit der Option festlegen können ni-buf-name-prefix. Der Standardwert ist I-.

  • Der Name eines indirekt verengten Puffers wird in der Moduszeile mit Gesicht ni-mode-line-buffer-idanstelle von Gesicht hervorgehoben mode-line-buffer-id. (Um dies zu deaktivieren, passen Sie einfach das erstere so an, dass es mit dem letzteren identisch ist.)

Ein solcher indirekter Puffer gibt Ihnen eine andere Ansicht eines Teils des Puffers oder sogar des gesamten Puffers (Verwendung C-x h C-x 4 n n). Es hat immer den gleichen Text und die gleichen Texteigenschaften, aber ansonsten ist es ziemlich unabhängig.

Insbesondere können Sie einen indirekten Puffer beenden, ohne den Basispuffer zu beeinflussen. Sie möchten wahrscheinlich indirekt verengte Puffer töten, anstatt sie zu erweitern.

Siehe das Emacs-Handbuch, Knoten Indirekte Puffer .

Drew
quelle
4

Hast du es versucht C-x C-c b( org-tree-to-indirect-buffer)? Es erstellt einen indirekten (neuen) Puffer und schränkt ihn auf den aktuellen Teilbaum ein, wobei der Rest des Dokuments unverändert bleibt.

Quarky Quanta
quelle
Beachten Sie, dass standardmäßig immer nur ein indirekter Puffer verwaltet wird. Dies kann jedoch durch Einstellen org-indirect-buffer-displayauf geändert werden new-frame.
Christoph