Ich wollte verschiedene Teile eines Puffers in zwei verschiedenen Frames betrachten, da ich zwei Monitore mit unterschiedlichen Formen habe, über die ich nicht einfach einen einzelnen Frame überspannen kann. Einige googeln führte mich zu verwenden clone-indirect-buffer
, was gut funktioniert.
Doch buffer-file-name
für den neuen Puffer ist nil
. Wie kann ich den Dateinamen des ursprünglichen Puffers (von dem dieser ein Klon ist) zuverlässig bestimmen?
buffers
files
indirect-buffers
rneatherway
quelle
quelle
C-x b
Fokus zu dem Frame, in dem der Puffer bereits angezeigt wird.Antworten:
Bei Fragen wie diesen behalte ich das Emacs-Handbuch und das Elisp-Handbuch auf Kurzwahl.
Aus dem Elisp-Handbuch zu indirekten Puffern :
Sie wollen wahrscheinlich
(buffer-file-name (buffer-base-buffer))
oder so etwas.quelle
defadvice
Option trotzdem. ;)Dies ist eine indirekte Antwort auf Ihre Frage. Ich bin mir nicht sicher, wie ich den Dateinamen des ursprünglichen Puffers herausfinden soll, ohne Folgendes zu tun. (BEARBEITEN: Die Antwort von @ lila_arrows füllt die Details aus: Sie können verwenden
buffer-base-buffer
. Bitte akzeptieren Sie diese Antwort als am korrektesten.)Der folgende Ratschlag ordnet den Dateinamen des ursprünglichen Puffers jedem seiner indirekten Klone zu:
Jetzt hat jeder der Klone den gleichen Dateinamen wie der ursprüngliche Puffer.
Ich verwende häufig indirekt geklonte Puffer und möchte beispielsweise die zugehörige Datei speichern können, wenn ich mit einem der Puffer und nicht mit dem Original arbeite . Dieser Ratschlag war meine Lösung für den gewünschten Workflow.
quelle