Doppelte Sitzung in ConEmu

10

Gibt es eine Möglichkeit, die Sitzung in ConEmu zu "duplizieren"?

Ich weiß, dass es nicht für jede Art von Terminal möglich ist (cmd.exe, Powershell usw.), aber ich bin am meisten an folgender Situation interessiert:

  • Ich bin in der cmd.exe-Konsole in ConEmu.
  • Durch Eingabe von Strg-T (die von mir angegebene Verknüpfung) kann ich eine neue Konsolenregisterkarte mit einer neuen Sitzung (cmd.exe) öffnen.

Ich möchte, dass diese Sitzung im selben Verzeichnis beginnt wie die erste , die ursprüngliche. Ich habe das Gefühl, dass dies mit% cd% variable oder ähnlichem möglich ist, aber ich konnte es nicht verwalten.

Michael Field
quelle

Antworten:

6

Variante 1

Geben Sie in bestehenden cmd prompt

cmd -new_console

und drücken Sie die Eingabetaste. Sie können auch einen Hotkey / ein Makro für diese Sequenz erstellen, z. B. AppsN->

print("cmd -new_console\n")

oder erstellen Sie eine Cmd-Datei oder einen Doskey-Alias.


Variante 2

Menüpunkt verwenden Duplicate root.... Es wird eine Kopie Ihrer übergeordneten (Root-) Shell der aktuellen Registerkarte (in der Sie den Menüpunkt aufrufen) erstellt. Sie können auch die doppelte Bestätigung im Settings\ deaktivieren Confirmation.


Variante 3

Mit den neuesten Versionen (ab 140818) können Sie auch %CD%Umgebungsvariablen innerhalb der Shell() GuiMacro- Funktion verwenden. So richten Sie Ihre hier beschriebene Shell ein .

Shell("", "cmd", "", "%CD%")
Maximus
quelle
Vielen Dank. Es ist keine perfekte Lösung, weil es nicht funktioniert, wenn ich mich mitten in einer Anwendung befinde (ssh, vagrant, alles, worauf lange gewartet werden kann). Aber es ist eine Lösung. Und nochmals vielen Dank.
Michael Field
Wenn Sie sich in einer mittleren SSH (oder einer anderen) befinden, ist "Duplicate Session" nicht eindeutig. Weil "was zu duplizieren"? Ihre aktive Sitzung ist ssh, nicht cmd. Ja, cmd befindet sich möglicherweise am unteren Rand des Prozessstapels, aber wie ist der Status? Unbestimmt, denke ich ...
Maximus
Du hast recht. Trotzdem brauche ich sehr oft genau das: um den letzten Status am Ende des Prozessstapels zu duplizieren.
Michael Field
Überprüfen Sie 121109. "Root duplizieren" im Tab-Menü. Funktioniert mit cmd.
Maximus
2

Im Folgenden wird dasselbe für PowerShell ausgeführt

ConEmu64.exe /config "shell" /dir "$(pwd)" /cmd powershell -new_console:n

Ich habe die folgende Funktion erstellt, die in mein PowerShell-Profil geladen wird

function Create-Console($path = $(pwd)) {
  $console = Resolve-Path (join-path (join-path "$env:PROGRAMW6432*" "console*") "ConEmu64*");
  . $console /config "shell" /dir "$path" /cmd powershell -new_console:n
}

Set-Alias sh Create-Console

Anschließend kann ich in der Konsole Folgendes ausführen, um eine neue PowerShell-Registerkarte im selben Verzeichnis zu erstellen:

> sh

oder erstellen Sie eine Registerkarte in einem anderen Verzeichnis mit:

> sh c:\some\directory\path
Mike Glenn
quelle