Session en double dans ConEmu

10

Est-il possible de "dupliquer" la session dans ConEmu.

Je sais que ce n'est pas possible pour tous les types de terminaux (cmd.exe, PowerShell, etc.), mais je suis le plus intéressé par la situation suivante:

  • Je suis dans la console cmd.exe à l'intérieur de ConEmu.
  • En tapant Ctrl-T (le raccourci que j'ai spécifié), je peux ouvrir un nouvel onglet de console, avec une nouvelle session (cmd.exe).

Je veux que cette session démarre dans le même répertoire que le premier , l'original. J'ai l' impression que cela peut être fait avec la variable% cd% ou similaire, mais je n'ai pas pu le gérer.

Michael Field
la source

Réponses:

6

Variante 1

Tapez l' invite cmd existante

cmd -new_console

et appuyez sur Entrée. Vous pouvez également créer un raccourci clavier / macro pour cette séquence, par exemple AppsN->

print("cmd -new_console\n")

ou créez un fichier cmd ou un alias doskey.


Variante 2

Utilisez l'élément de menu Duplicate root.... Il fera une copie de votre shell le plus parent (racine) de l'onglet actuel (où vous appelez l'élément de menu). Vous pouvez également désactiver la confirmation en double dans le Settings\ Confirmation.


Variante 3

Avec les dernières versions (à partir de 140818), vous pouvez également utiliser %CD%la variable d'environnement dans la fonction Shell() GuiMacro . Comment configurer votre shell décrit ici .

Shell("", "cmd", "", "%CD%")
Maximus
la source
Merci. Ce n'est pas une solution parfaite, car cela ne fonctionne pas si je suis au milieu d'une application (ssh, vagabond, tout ce qui peut être attendu longtemps). Mais c'est une solution. Et merci encore.
Michael Field
Si vous êtes dans un milieu ssh (ou smth autre) - "session en double" sera ambiguë. Parce que "que dupliquer"? Votre session active est ssh, pas cmd. Oui, cmd peut être au bas de la pile de processus, mais quel est son état? Indéterminé je suppose ...
Maximus
Vous avez raison. Mais encore, très souvent, j'ai besoin exactement de cela: pour dupliquer le dernier état du bas de la pile de processus.
Michael Field
Eh bien, vérifiez 121109. "Racine en double" dans le menu Onglet. Fonctionne avec cmd.
Maximus
2

Ce qui suit fera la même chose pour PowerShell

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

J'ai créé la fonction suivante qui est chargée dans mon profil 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

Ensuite, je peux exécuter ce qui suit dans la console pour créer un nouvel onglet PowerShell dans le même répertoire:

> sh

ou créez un onglet dans un répertoire différent avec:

> sh c:\some\directory\path
Mike Glenn
la source