Réponses:
Non. On CtrlD* nix génère un EOF, que divers shells interprètent comme fonctionnant exit
. L'équivalent d'EOF sur Windows est CtrlZ, mais cmd.exe n'interprète pas cela spécialement lorsqu'il est tapé à l'invite.
bash
et al. que vous êtes en train de faire est un alias de clavier à exécution automatique TCC / LE , comme celui-ci , où l'interpréteur de commandes (pas la console) reconnaît la combinaison de touches ordinaire ALT+F4
pendant l'édition de ligne et exécute la exit
commande intégrée en réponse.
stty -a
retourne icanon
(c'est-à-dire pas -icanon
). Votre commentaire est-il With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting input
vraiment statistiquement correct en ce moment?
Alt- Space. Ensuite, C.
Ouais, c'est un peu plus lent que Ctrl- D. Mais c'est la réponse à exactement ce que vous demandez: la séquence de touches équivalentes intégrée qui vous permet de quitter l'invite sans avoir à taper la exit
commande. Aucun logiciel tiers requis.
Cela peut ne pas fonctionner de manière absolument identique à bash: bash ne se déconnectera que sur une ligne de commande vide. Sous Windows, cela peut fermer la fenêtre, même si vous avez déjà tapé une commande partielle dessus.
Vous pouvez utiliser DOSKEY pour créer des macros dans CMD.exe.
Pour créer un type de macro:
DOSKEY [macroname]=[command(s)]
De cette façon, vous pouvez lier une clé à une autre commande.
Exemple:
DOSKEY e=exit
se lierait e
à la exit
commande, donc lorsque vous entrez un e
à l'invite, ce serait comme si vous saisissiez unexit
Je ne sais pas si vous pouvez utiliser CTRL- $ncombinaisons comme macros Bien que
cmd
interprète simplement comme des commandes normales, attendant Enter
d'être pressées, il n'y a donc aucun avantage à aliaser Ctrl-Z par rapport à juste e
ou x
.
Il existe maintenant un projet open source appelé clink sur http://code.google.com/p/clink/ (modifier: il a été déplacé vers http://mridgers.github.io/clink/ ) - il apporte la fonctionnalité de ligne de lecture Unix à l'invite de commande Windows.
Il prend en charge la plupart des fonctionnalités, y compris l'édition en ligne de commande, la recherche d'historique, la complétion d'onglets ainsi que les scripts de complétion, etc. ;]
Vous pouvez obtenir le même effet avec cet extrait de code AutoHotKey :
; Close Command Prompt when pressing Ctrl+D
#IfWinActive, Command Prompt$
^d::
; First send ESC, in case we're in select mode.
Send {Esc}{Esc}exit{Enter}
#IfWinActive
Ctrl+D
n'est en fait qu'un caractère ordinaire et non un caractère spécial EOF. Les shells se lientCtrl+D
à une action GNU Readline ou ZLE qui se termine (mais uniquement si le tampon d'édition de ligne est vide), le comportement est donc généralement le même. Mais ceCtrl+D
n'est pas EOF avec des obus modernes, juste un personnage de contrôle ordinaire. Le comportement lorsque le tampon d'édition n'est pas vide est nettement différent de ce qui se produit avec un caractère spécial EOF.