In der Funktion "Shell" zeigt diese Zeile den Shell-Puffer und fast immer die offene neue Shell in einem zufälligen Frame an. Und ich muss die Puffer tauschen, es ist nervig.
...
(pop-to-buffer buffer)
...
In docs heißt es:
Befindet sich dieses Fenster in einem anderen grafischen Rahmen, erhält dieser Rahmen nach Möglichkeit einen Eingabefokus.
Ich verstehe nicht, wie ich Puffer im Zielframe anzeigen kann, ich bin in elisp nicht gut genug. Wie kann ich das machen? Danke, wenn jemand helfen könnte.
Antworten:
Ich gehe davon aus, dass das Originalposter bedeutet, auf das aktuell ausgewählte Fenster im selben Rahmen zu zielen. Wenn das Originalposter auf ein bestimmtes Fenster in einem anderen Frame abzielen möchte, finden Sie in diesem zugehörigen Thread ein komplexes Beispiel: /programming/18346785/how-to-intercept-a-file- bevor es sich öffnet und entscheidet, welcher Frame
Ich habe die eingebaute Funktion kopiert
shell
und eine neue mit dem Namen erstelltshell-get-buffer-create
, diewith-current-buffer ...
anstelle von verwendetpop-to-buffer
. Diese neue Funktion generiert oder lokalisiert den*shell*
Puffer, ohne ihn in einem Fenster auszuwählen.Um den
*shell*
Puffer im aktuell ausgewählten Fenster anzuzeigen, verwenden Sie:oder
oder
Ich habe eine benutzerdefinierte Funktion namens erstellt
my-display-buffer
, die in vier Richtungen angezeigt werden kann - links, rechts, oben oder unten. Es gibt drei Möglichkeiten: (1) Wenn ein Fenster im Frame bereits den Zielpuffer anzeigt, verwenden Sie einfach dasselbe Fenster erneut. (2) Wenn sich in Bezug auf das ausgewählte Fenster bereits ein Fenster in der angegebenen Richtung befindet, wird der Zielpuffer in diesem Fenster angezeigt. (3) Wenn in der angegebenen Richtung kein Fenster vorhanden ist, erstellen Sie eines in dieser Richtung und zeigen Sie den Zielpuffer in diesem Fenster an.Beispielnutzung :
oder
oder
oder
Der Code :
Und hier ist eine
eshell-get-buffer-create
, die genauso funktioniert wie oben ...quelle
Keine direkte Antwort auf Ihre Frage, aber vielleicht ist dies eine Lösung für Sie.
So installieren Sie das Paket Shell-Pop von Melpa oder Melpa-Stable. Dann auswerten (zum Ausprobieren
*scratch*
via viaC-x C-e
, später in Ihrem.emacs
)Dadurch wird eine Shell im unteren Teil Ihres Frames angezeigt, in diesem Fall, wenn Sie Strg-Meta-Ret drücken. Durch Wiederholen der Tastatursequenz kehren Sie dorthin zurück, wo Sie waren.
Weitere Informationen finden Sie unter https://github.com/kyagi/shell-pop-el .
quelle