Duplicate session in ConEmu

10

2

Is there way to "duplicate" session in ConEmu.

I know it's not possible for every kind of terminal (cmd.exe, powershell, etc), but I'm most interested in following situation:

  • I'm in cmd.exe console inside ConEmu.
  • By typing Ctrl-T (the shortcut I specified) I am able to open a new console tab, with a new session (cmd.exe).

I want this session to start in the same directory as the first one, original one. I'm feeling that it can be done with %cd% variable or similar, but I couldn't manage it.

Michael Field

Posted 2012-10-29T14:12:14.970

Reputation: 213

Answers

6

Variant 1

Type in existing cmd prompt

cmd -new_console

and press Enter. Also you may create hotkey/macro for this sequence, for example AppsN -->

print("cmd -new_console\n")

or create cmd-file or doskey alias.


Variant 2

Use menu item Duplicate root.... It will make a copy of your most parent (root) shell of the current tab (where you are calling menu item). Also you may disable duplicate confirmation in the Settings \ Confirmation.


Variant 3

With latest versions (from 140818) you also may use %CD% environment variable within Shell() GuiMacro function. How to set up your shell described here.

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

Maximus

Posted 2012-10-29T14:12:14.970

Reputation: 19 395

Thanks.

It's not perfect solution, because it doesn't work if I'm in a middle of some application (ssh, vagrant, anything that can be waited for long).

But, it's a solution. And thanks again. – Michael Field – 2012-10-31T10:51:20.727

If you are in a middle ssh (or smth other) - "duplicate session" will be ambiguous. Because "what to duplicate"? You active session is ssh, not cmd. Yes, cmd may be at the bottom of the process stack, but what is it state? Undetermined I guess... – Maximus – 2012-10-31T11:09:19.153

You're right.

But still, very often I need exactly that: to duplicate the last state of the bottom of the process stack. – Michael Field – 2012-11-09T17:45:45.733

Well, check 121109. "Duplicate root" in Tab menu. Works with cmd. – Maximus – 2012-11-09T23:47:35.043

2

The following will do the same thing for PowerShell

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

I created the following function that is loaded in my PowerShell profile

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

Then I can execute the following in the console to create a new PowerShell tab in the same directory:

> sh

or create a tab in a different directory with:

> sh c:\some\directory\path

Mike Glenn

Posted 2012-10-29T14:12:14.970

Reputation: 203