Sesi duplikat di ConEmu

10

Apakah ada cara untuk "menduplikasi" sesi di ConEmu.

Saya tahu itu tidak mungkin untuk setiap jenis terminal (cmd.exe, PowerShell, dll), tapi saya paling tertarik dengan situasi berikut:

  • Saya berada di konsol cmd.exe di dalam ConEmu.
  • Dengan mengetikkan Ctrl-T (pintasan yang saya tentukan) saya dapat membuka tab konsol baru, dengan sesi baru (cmd.exe).

Saya ingin sesi ini dimulai di direktori yang sama dengan yang pertama , yang asli. Saya merasa itu dapat dilakukan dengan% cd% variabel atau serupa, tetapi saya tidak bisa mengelolanya.

Michael Field
sumber

Jawaban:

6

Varian 1

Ketik yang ada cmd cepat

cmd -new_console

dan tekan Enter. Anda juga dapat membuat tombol pintas / makro untuk urutan ini, misalnya AppsN->

print("cmd -new_console\n")

atau membuat cmd-file atau alias doskey.


Varian 2

Gunakan item menu Duplicate root.... Ini akan membuat salinan shell orangtua Anda (root) dari tab saat ini (di mana Anda memanggil item menu). Anda juga dapat menonaktifkan konfirmasi duplikat di Settings\ Confirmation.


Varian 3

Dengan versi terbaru (dari 140818) Anda juga dapat menggunakan %CD%variabel lingkungan dalam fungsi Shell() GuiMacro . Cara mengatur shell Anda dijelaskan di sini .

Shell("", "cmd", "", "%CD%")
Maximus
sumber
Terima kasih. Ini bukan solusi yang sempurna, karena itu tidak berfungsi jika saya di tengah beberapa aplikasi (ssh, gelandangan, apa pun yang bisa menunggu lama). Tapi itu solusinya. Dan terima kasih lagi.
Michael Field
Jika Anda berada di ssh tengah (atau bertiga) - "sesi duplikat" akan ambigu. Karena "apa yang harus digandakan"? Sesi aktif Anda adalah ssh, bukan cmd. Ya, cmd mungkin ada di bagian bawah tumpukan proses, tapi apa statusnya? Saya kira belum ditentukan ...
Maximus
Kamu benar. Tapi tetap saja, sangat sering saya membutuhkan hal itu: untuk menduplikasi keadaan terakhir dari bagian bawah tumpukan proses.
Michael Field
Nah, periksa 121109. "Duplikat root" di menu Tab. Bekerja dengan cmd.
Maximus
2

Berikut ini akan melakukan hal yang sama untuk PowerShell

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

Saya membuat fungsi berikut yang dimuat di profil PowerShell saya

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

Kemudian saya dapat menjalankan yang berikut ini di konsol untuk membuat tab PowerShell baru di direktori yang sama:

> sh

atau buat tab di direktori lain dengan:

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