Sessão duplicada no ConEmu

10

Existe maneira de "duplicar" a sessão no ConEmu.

Eu sei que não é possível para todos os tipos de terminal (cmd.exe, PowerShell, etc), mas estou mais interessado na seguinte situação:

  • Estou no console do cmd.exe dentro do ConEmu.
  • Ao digitar Ctrl-T (o atalho especificado), posso abrir uma nova guia do console, com uma nova sessão (cmd.exe).

Quero que esta sessão inicie no mesmo diretório que o primeiro , original. Eu estou sentindo que pode ser feito com% cd variável% ou similar, mas eu não podia controlá-lo.

Michael Field
fonte

Respostas:

6

Variante 1

Digite o prompt do cmd existente

cmd -new_console

e pressione Enter. Além disso, você pode criar teclas de atalho / macro para esta sequência, por exemplo AppsN->

print("cmd -new_console\n")

ou crie um alias do cmd-file ou doskey.


Variante 2

Use o item de menu Duplicate root.... Ele fará uma cópia do seu shell principal (raiz) da guia atual (onde você está chamando o item de menu). Além disso, você pode desativar a confirmação duplicada no Settings\ Confirmation.


Variante 3

Nas versões mais recentes (de 140818), você também pode usar %CD%variáveis ​​de ambiente na função Shell() GuiMacro . Como configurar seu shell descrito aqui .

Shell("", "cmd", "", "%CD%")
Maximus
fonte
Obrigado. Não é uma solução perfeita, porque não funciona se eu estiver no meio de algum aplicativo (ssh, vagrant, qualquer coisa que possa ser esperada por muito tempo). Mas, é uma solução. E obrigado novamente.
Michael Campo
Se você estiver em um ssh do meio (ou outro) - "sessão duplicada" será ambígua. Porque "o que duplicar"? Sua sessão ativa é ssh, não cmd. Sim, o cmd pode estar na parte inferior da pilha do processo, mas qual é o estado? Indeterminado, eu acho ...
Maximus
Você está certo. Mas ainda assim, muitas vezes preciso exatamente disso: duplicar o último estado da parte inferior da pilha do processo.
Michael Campo
Bem, verifique 121109. "Duplicar raiz" no menu guia. Funciona com cmd.
Maximus
2

O seguinte fará o mesmo com o PowerShell

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

Criei a seguinte função que é carregada no meu perfil do 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

Em seguida, posso executar o seguinte no console para criar uma nova guia do PowerShell no mesmo diretório:

> sh

ou crie uma guia em um diretório diferente com:

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