Sessione duplicata in ConEmu


10

C'è modo di "duplicare" la sessione in ConEmu.

So che non è possibile per ogni tipo di terminale (cmd.exe, powershell, ecc.), Ma sono molto interessato alla seguente situazione:

  • Sono nella console cmd.exe all'interno di ConEmu.
  • Digitando Ctrl-T (il collegamento che ho specificato) sono in grado di aprire una nuova scheda della console, con una nuova sessione (cmd.exe).

Voglio che questa sessione inizi nella stessa directory della prima , quella originale. Sto sentendo che può essere fatto con% variabile% cd o simili, ma non riuscivo a gestirlo.

Risposte:


6

Variante 1

Digita il prompt cmd esistente

cmd -new_console

e premi Invio. Inoltre è possibile creare hotkey / macro per questa sequenza, ad esempio AppsN->

print("cmd -new_console\n")

oppure creare alias cmd-file o doskey.


Variante 2

Usa la voce di menu Duplicate root.... Creerà una copia della shell più genitore (root) della scheda corrente (dove si sta chiamando la voce di menu). Inoltre è possibile disabilitare la conferma duplicata in Settings\ Confirmation.


Variante 3

Con le ultime versioni (dal 140818) è inoltre possibile utilizzare %CD%la variabile d'ambiente all'interno Shell() della funzione GuiMacro . Come impostare la shell descritta qui .

Shell("", "cmd", "", "%CD%")

Grazie. Non è una soluzione perfetta, perché non funziona se sono nel mezzo di alcune applicazioni (ssh, vagabondo, tutto ciò che può essere atteso a lungo). Ma è una soluzione. E grazie ancora.
Michael Field,

Se sei in mezzo a un ssh (o altro) - la "sessione duplicata" sarà ambigua. Perché "cosa duplicare"? La sessione attiva è ssh, non cmd. Sì, cmd potrebbe trovarsi in fondo allo stack del processo, ma che cos'è? Indeterminato, credo ...
Massimo

Hai ragione. Tuttavia, molto spesso ho bisogno esattamente di questo: duplicare l'ultimo stato del fondo dello stack del processo.
Michael Field,

Bene, controlla 121109. "Radice duplicata" nel menu Scheda. Funziona con cmd.
Massimo

2

Quanto segue farà la stessa cosa per PowerShell

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

Ho creato la seguente funzione caricata nel mio profilo PowerShell

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

Quindi posso eseguire quanto segue nella console per creare una nuova scheda PowerShell nella stessa directory:

> sh

o crea una scheda in una directory diversa con:

> sh c:\some\directory\path
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.