Дублирующая сессия в ConEmu

10

Есть ли способ «продублировать» сеанс в ConEmu.

Я знаю, что это возможно не для всех типов терминалов (cmd.exe, powershell и т. Д.), Но меня больше всего интересует следующая ситуация:

  • Я в консоли cmd.exe внутри ConEmu.
  • Набрав Ctrl-T (ярлык, который я указал), я могу открыть новую вкладку консоли с новым сеансом (cmd.exe).

Я хочу, чтобы эта сессия начиналась в той же директории, что и первая , оригинальная. Я чувствую, что это можно сделать с помощью переменной% cd% или аналогичной, но я не смог справиться с этим.

Майкл Филд
источник

Ответы:

6

Вариант 1

Введите существующее приглашение cmd

cmd -new_console

и нажмите Enter. Также вы можете создать горячую клавишу / макрос для этой последовательности, например AppsN->

print("cmd -new_console\n")

или создайте cmd-файл или псевдоним doskey.


Вариант 2

Используйте пункт меню Duplicate root.... Он создаст копию вашей самой родительской (корневой) оболочки текущей вкладки (где вы вызываете пункт меню). Также вы можете отключить дублирование подтверждения в Settings\ Confirmation.


Вариант 3

В последних версиях (от 140818) вы также можете использовать %CD%переменную окружения в функции Shell() GuiMacro . Как настроить вашу оболочку описано здесь .

Shell("", "cmd", "", "%CD%")
Maximus
источник
Спасибо. Это не идеальное решение, потому что оно не работает, если я нахожусь в середине какого-то приложения (ssh, vagrant, всего, что можно долго ждать). Но это решение. И еще раз спасибо.
Майкл Филд
Если вы находитесь в середине ssh (или что-то другое) - «дублирующая сессия» будет неоднозначной. Потому что "что дублировать"? Вы активным сеансом является SSH, а не CMD. Да, cmd может быть в нижней части стека процессов, но каково его состояние? Не определено, я думаю ...
Максим
Вы правы. Но все же очень часто мне нужно именно это: дублировать последнее состояние нижней части стека процессов.
Майкл Филд
Хорошо, проверьте 121109. «Дублировать корень» во вкладке меню. Работает с cmd.
Максим
2

Следующее будет делать то же самое для PowerShell

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

Я создал следующую функцию, которая загружается в мой профиль 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

Затем я могу выполнить следующее в консоли, чтобы создать новую вкладку PowerShell в том же каталоге:

> sh

или создайте вкладку в другом каталоге с помощью:

> sh c:\some\directory\path
Майк Гленн
источник