Дублікат сеансу в ConEmu


10

Чи є спосіб "дублювати" сеанс в ConEmu.

Я знаю, що це неможливо для всіх типів терміналів (cmd.exe, powerhell тощо), але мене найбільше цікавить наступна ситуація:

  • Я в консолі 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%")

Дякую. Це не ідеальне рішення, тому що воно не працює, якщо я перебуваю посеред якоїсь програми (ssh, бродячий, все, на що можна довго чекати). Але, це рішення. І ще раз дякую.
Майкл Філд

Якщо ви перебуваєте в середньому ssh (або smth іншому) - "повторюваний сеанс" буде неоднозначним. Тому що "що дублювати"? У вас активний сеанс - ssh, а не cmd. Так, cmd може бути внизу стеку процесів, але що це за стан? Не визначено, я здогадуюсь ...
Максим

Ти маєш рацію. Але все-таки дуже часто мені потрібно саме це: дублювати останній стан нижньої частини стека процесу.
Майкл Філд

Ну, перевірте 121109. "Копіювати корінь" у меню Tab. Працює з 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.