Ich verwende Emacs 23.3.1 unter Windows 7. Ich weiß, dass ich Shell von Emacs mit Mx Shell ausführen kann. Ich möchte mehrere Shell-Fenster gleichzeitig haben, aber wenn ich Mx-Shell ein zweites Mal tippe, wird mir nur das gleiche Shell-Fenster geöffnet.
Gibt es eine Möglichkeit, verschiedene Shell-Fenster zu haben?
C-u
führt den Befehl ausuniversal-argument
. Auf diese Weise können Sie dem nächsten Befehl ein Argument hinzufügen. Sie können mehr darüber lesen mitC-h k C-u
(C-h k
läuftdescribe-key
, sehr praktisch!)C-h f eshell
(C-h f
läuftdescribe-function
) zeigt, dass die Funktioneshell
ein optionales Argument akzeptiert. Quote: Ein numerisches Präfix arg (wie inC-u 42 M-x eshell RET
) wechselt zu der Sitzung mit dieser Nummer und erstellt sie bei Bedarf. Ein nicht numerisches Präfix arg bedeutet, dass eine neue Sitzung erstellt wird.Sie können den Puffer Ihrer Shell mit umbenennen M-x rename-buffer. Dann können Sie eine zweite Shell starten.
quelle
Schauen Sie sich MultiTerm an , es erleichtert die Verwaltung mehrerer Terminals in Emacs erheblich.
quelle
Es kann auch nützlich sein, eine bildschirmähnliche Oberfläche für Ihre Shells zu verwenden. Ich habe meine eigenen geschrieben, aber es gibt andere da draußen, wie EmacsScreen .
quelle
Nach mehr als vier Jahren sehe ich, dass sich einige Leute manchmal immer noch mit diesem Problem befassen. Daher werde ich eine kurze Funktion veröffentlichen, die ich geschrieben habe, um eine Shell zu laden und nach ihrem Namen zu fragen. Auf diese Weise können Sie eine Shell als "Sortierdateien" bezeichnen, wenn sie zum Sortieren von Dateien bestimmt ist, und eine andere als "Bienenstock", wenn sie zum Ausführen von Bienenstockabfragen vorgesehen ist. Ich benutze das jetzt jeden Tag (auf Emacs 24):
quelle
Dadurch wird automatisch eine neue Shell-Instanz in dem Puffer generiert, den Sie gerade verwenden. binde es an MS oder ähnliches und sofortige Freude:
Vielen Dank an phils für die Empfehlung eines Umschreibens mit let, obwohl das Ergebnis noch schrecklichere Klammern sind ...: \
quelle
let
Variablen binden, wenn sie für die lokale Verwendung vorgesehen sind. So wie es ist, haben Sie jetzt globale Werte fürcurrentbuf
undnewbuf
.Dadurch wird jedes Mal, wenn Sie die Funktion aufrufen, eine neue Shell geöffnet und bei Bedarf automatisch umbenannt. Das zusätzliche Plus ist, wenn Sie Dateien remote bearbeiten (dired / tramp ...), wird eine Shell auf dem Remote-Host geöffnet und automatisch mit dem Remote-Hostnamen umbenannt:
quelle