Antworten:
Nein. CtrlDOn * nix generiert eine EOF, die von verschiedenen Shells als ausgeführt interpretiert wird exit. Das Äquivalent für EOF unter Windows ist CtrlZ, aber cmd.exe interpretiert dies nicht speziell, wenn Sie es an der Eingabeaufforderung eingeben.
bashet al. sind tatsächlich tut , ist eine TCC / LE autoexecuting Tastatur alias, wie diese , wobei der Befehlsinterpreter (nicht die Konsole) erkennt die gewöhnliche Tastenkombination ALT+F4 während der Zeilenbearbeitung und führt die ich im internen exitBefehl als Antwort.
stty -akehrt icanon(also nicht -icanon). Ist Ihr Kommentar With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting inputzu diesem Zeitpunkt statistisch wirklich korrekt?
Alt-Space . Dann C.
Ja, es ist etwas langsamer als Ctrl - D. Dies ist jedoch die Antwort auf genau das, wonach Sie suchen: die integrierte äquivalente Tastenfolge, mit der Sie die Eingabeaufforderung verlassen können, ohne den exitBefehl eingeben zu müssen . Keine Software von Drittanbietern erforderlich.
Dies funktioniert möglicherweise nicht absolut identisch mit bash: bash meldet sich nur in einer leeren Befehlszeile ab. In Windows kann das Fenster dadurch geschlossen werden, auch wenn Sie bereits einen Teilbefehl eingegeben haben.
Sie können DOSKEY verwenden , um Makros in CMD.exe zu erstellen.
So erstellen Sie einen Makrotyp:
DOSKEY [macroname]=[command(s)]
Auf diese Weise können Sie eine Taste an einen anderen Befehl binden.
Beispiel:
DOSKEY e=exit
würde ean den exitBefehl binden , also bei der Eingabe einese in die Eingabeaufforderung eingeben, würde dies so aussehen eingebenexit
Ich bin mir nicht sicher, ob Sie CTRL- $nKombinationen als Makros verwenden können
cmdnur als normale Befehle interpretiert, die darauf warten Enter, gedrückt zu werden. Das Aliasing von Strg-Z gegenüber "nur" eoder " nur" bietet also keinen Vorteil x.
Es gibt jetzt ein Open-Source-Projekt mit dem Namen clink unter http://code.google.com/p/clink/ (bearbeiten: es wurde nach http://mridgers.github.io/clink/ verschoben ) die Windows-Eingabeaufforderung.
Es unterstützt die meisten Funktionen, einschließlich Befehlszeilenbearbeitung, Verlaufssuche, Vervollständigung von Registerkarten zusammen mit Vervollständigungsskripten usw. Es lohnt sich, dies zu überprüfen, und macht cmd viel weniger nervenaufreibend. ;]
Mit diesem AutoHotKey- Snippet können Sie den gleichen Effekt erzielen :
; 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+Dist lediglich ein gewöhnliches Zeichen und kein EOF-Sonderzeichen. Shells bindenCtrl+Dan eine GNU Readline- oder ZLE-Aktion, die beendet wird (jedoch nur, wenn der Zeilenbearbeitungspuffer leer ist), sodass das Verhalten größtenteils dasselbe Ergebnis hat. AberCtrl+Dist nicht EOF mit modernen Muscheln, nur ein gewöhnlicher Steuercharakter. Das Verhalten, wenn der Bearbeitungspuffer nicht leer ist, unterscheidet sich deutlich von dem, was mit einem EOF-Sonderzeichen geschieht.