Wenn ich eine REPL mit C-c C-l
öffne, erscheint das erzeugte Fenster etwas Besonderes (dunkler Hintergrund, beendet den Prozess beim Schließen, ...).
Es scheint auch immer meinen Bildschirm horizontal zu teilen, was manchmal nützlich, manchmal nervig ist. Da ich nicht genug über Emacs weiß, kann ich anscheinend keine Möglichkeit finden, dieses Fenster auf die rechte Seite zu verschieben.
Ich habe es geschafft, es mit den Switch-Buffer-Befehlen in einen anderen Frame zu bekommen, aber ich kann das Original nicht schließen, weil es den Prozess und alle Frames beendet, die den Puffer enthalten.
Können Sie mir Hinweise geben, wie mit diesem speziellen Puffer umzugehen ist und wie er angezeigt wird? :(
Vielen Dank!
Hmm, hier gibt es viele bewegliche Teile. Ich bin mir nicht sicher, woran Sie C-c C-l
gebunden haben. Wenn Sie den Befehl +eval/repl
nicht verwenden, um die Repl eines Modus zu starten, behandelt Doom den Repl-Puffer wie einen gewöhnlichen Spezialpuffer.
In diesem Fall sind die beiden relevanten Variablen shackle-default-alignment
und shackle-rules
, die Emacs mitteilen, wie mit Fenstern umzugehen ist, die bestimmte Kriterien erfüllen.
Am Ende von shackle-rules
gibt es zwei Auffangregeln:
(set! :popup
'("^\\*" :regexp t :noselect t :autokill t)
'("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))
Die beiden Probleme hier sind :autokill t
(was sicherstellt, dass ein Puffer und die zugehörigen Prozesse zusammen beendet werden) und da kein :align
angegeben ist, wird auf shackle-default-alignment
, der standardmäßig auf gesetzt ist 'below
.
Also, wie können wir das beheben?
Hier sind drei Möglichkeiten:
Geben Sie einfach eine überschreibende Regel insbesondere für Ihren Vertreter an:
(set! :popup "*my-repl-buffer*" :align 'left :noesc t)
Weitere Informationen finden Sie unter M-x doom/describe-setting RET :popup
.
Aktivieren Sie den Nebenmodus +eval-repl-mode
in Ihrer Antwort:
(add-hook 'inferior-python-mode-hook #'+eval-repl-mode)
Sie finden diese Popup-Regel in modules/feature/eval/config.el :
(set! :popup
'(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
:size 16 :noesc t)
Binden Sie C-c C-l
an +eval/repl
und verwenden Sie dies stattdessen, um Ihre Repl. Die meisten Modi haben vernünftige Voreinstellungen. Wenn die gewünschte Replik nicht geöffnet wird, können Sie die Zuordnung major-mode->repl mit der Einstellung :repl
ändern, z
(set! :repl 'python-mode #'+python/repl)
Die Funktion :repl will sollte einen Puffer zurückgeben, der das repl enthält.
Ich hoffe, das hilft!
Oh, ich habe vergessen zu erwähnen: Es gibt derzeit keine Möglichkeit, ein Live-Popup-Fenster zu verschieben (das war noch nie nötig). Das ist etwas, was ich versuchen werde zu beheben.
Das scheint die ganze Hilfe zu sein, die ich brauchte!
Um genauer zu sein, sprach ich eigentlich von der intero
REPL, die von einem Befehl namens intero-repl-load
gestartet wird. Ich weiß nicht, welche Mechanismen es dann verwendet.
Am Ende ging ich mit:
(set! :popup "^\\*intero:" :regexp t :align 'right :size 80)
in meinem modules/private/ptival/init.el
, funktionierte wie ein Zauber!
Danke, dass Sie sich die Zeit genommen haben, mir das alles zu erklären! Ich glaube nicht, dass ich das in angemessener Zeit alleine herausgefunden hätte! 👍
Hilfreichster Kommentar
Hmm, hier gibt es viele bewegliche Teile. Ich bin mir nicht sicher, woran Sie
C-c C-l
gebunden haben. Wenn Sie den Befehl+eval/repl
nicht verwenden, um die Repl eines Modus zu starten, behandelt Doom den Repl-Puffer wie einen gewöhnlichen Spezialpuffer.In diesem Fall sind die beiden relevanten Variablen
shackle-default-alignment
undshackle-rules
, die Emacs mitteilen, wie mit Fenstern umzugehen ist, die bestimmte Kriterien erfüllen.Am Ende von
shackle-rules
gibt es zwei Auffangregeln:Die beiden Probleme hier sind
:autokill t
(was sicherstellt, dass ein Puffer und die zugehörigen Prozesse zusammen beendet werden) und da kein:align
angegeben ist, wird aufshackle-default-alignment
, der standardmäßig auf gesetzt ist'below
.Also, wie können wir das beheben?
Hier sind drei Möglichkeiten:
Geben Sie einfach eine überschreibende Regel insbesondere für Ihren Vertreter an:
Weitere Informationen finden Sie unter
M-x doom/describe-setting RET :popup
.Aktivieren Sie den Nebenmodus
+eval-repl-mode
in Ihrer Antwort:(add-hook 'inferior-python-mode-hook #'+eval-repl-mode)
Sie finden diese Popup-Regel in modules/feature/eval/config.el :
Binden Sie
C-c C-l
an+eval/repl
und verwenden Sie dies stattdessen, um Ihre Repl. Die meisten Modi haben vernünftige Voreinstellungen. Wenn die gewünschte Replik nicht geöffnet wird, können Sie die Zuordnung major-mode->repl mit der Einstellung:repl
ändern, z(set! :repl 'python-mode #'+python/repl)
Die Funktion :repl will sollte einen Puffer zurückgeben, der das repl enthält.
Ich hoffe, das hilft!