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.
bash
et 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 exit
Befehl als Antwort.
stty -a
kehrt 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 input
zu 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 exit
Befehl 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 e
an den exit
Befehl 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
cmd
nur als normale Befehle interpretiert, die darauf warten Enter
, gedrückt zu werden. Das Aliasing von Strg-Z gegenüber "nur" e
oder " 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+D
ist lediglich ein gewöhnliches Zeichen und kein EOF-Sonderzeichen. Shells bindenCtrl+D
an 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+D
ist 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.