Neustart des Shell-Prozesses im Puffer

Neustart des Shell-Prozesses im Puffer

In Emacs habe ich oft mehrere Shell-Puffer geöffnet und verwende rename-buffer, um den Überblick zu behalten. Manchmal schließe ich die Shell versehentlich, indem ich zu viele ^Ds drücke, oder ich verwende ein System, das inaktive Shells automatisch abschaltet. Gibt es eine Möglichkeit, eine neue Shell im selben Puffer zu starten? Da ich den Puffer vonHülseDurch Eintippen von „Mx shell“ wird eine Shell in einer neuenHülsePuffer, nicht der aktuelle Puffer.

Antwort1

Führen Sie anstelle der Mx-Shell den folgenden Emacs-Lisp-Code mit M- aus:

(shell (current-buffer))

Antwort2

Das ist zwar nicht perfekt, aber Sie bekommen damit das meiste, was Sie wollen. Fügen Sie diesen Code in Ihre .emacsStartdatei ein:

(defun my-shell-mode-hook ()
  "Added to shell-mode-hook.  This function runs every time function shell
starts a shell."
  (rename-buffer "My Shell" 'unique))

(add-hook 'shell-mode-hook 'my-shell-mode-hook)

"My Shell"Sie können die Zeichenfolge gerne in einen anderen Namen ändern . Wenn Sie dies tun M-x shell RET, während Sie sich im My ShellPuffer befinden, wird die neue Shell im selben Puffer gestartet. Wenn Sie dies jedoch in einem anderen Puffer tun, erhalten Sie leider einen neuen Puffer mit dem Namen My Shell<2>, was nicht so schön ist. Ich denke, der letztere Effekt kann durch Folgendes eliminiert werden:BeratungFunktion shell, sodass sie My Shellvor der tatsächlichen Ausführung der shellFunktion zum Puffer wechselt.

verwandte Informationen