Существует ли эквивалентное нажатие клавиши для выхода из командной строки в Windows (запущено через Пуск-> Выполнить: cmd) в режим ожидания bash Ctrl- dчтобы предотвратить необходимость ввода, exitчтобы покинуть оболочку?
Существует ли эквивалентное нажатие клавиши для выхода из командной строки в Windows (запущено через Пуск-> Выполнить: cmd) в режим ожидания bash Ctrl- dчтобы предотвратить необходимость ввода, exitчтобы покинуть оболочку?
Ответы:
Нет. CtrlD* Nix генерирует EOF, который различные оболочки интерпретируют как работающие exit. Эквивалент EOF в Windows есть CtrlZ, но cmd.exe не интерпретирует это специально при вводе в командной строке.
bashи соавт. на самом деле это псевдоним клавиатуры TCC / LE с автоматическим выполнением, такой как этот , где интерпретатор команд (не консоль) распознает обычную комбинацию нажатий клавиш ALT+F4 во время редактирования строки и выполняет exitв ответ встроенную команду.
stty -aвозвращает icanon(то есть, нет -icanon). Ваш комментарий With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting inputдействительно статистически корректен на данный момент?
Alt- Space. Затем,C .
Да, это немного медленнее, чем Ctrl- D. Но это ответ именно на то, что вы просите: встроенная эквивалентная последовательность нажатий клавиш, которая позволяет выйти из подсказки без необходимости набиратьexit команду. Никакое стороннее программное обеспечение не требуется.
Это может не работать абсолютно идентично bash: bash будет выходить только из пустой командной строки. В Windows это может закрыть окно, даже если вы уже набрали на нем частичную команду.
Вы можете использовать DOSKEY для создания макросов в CMD.exe.
Чтобы создать тип макроса:
DOSKEY [macroname]=[command(s)]
Таким образом, вы можете связать ключ с другой командой.
Пример:
DOSKEY e=exit
будет привязан eк exitкоманде, поэтому, когда вы вводитеe в приглашение, это будет похоже на вводexit
Я не уверен, что вы можете использовать CTRL- $nкомбинации как макросы, хотя
cmdпросто интерпретирует их как обычные команды, ожидающие Enterнажатия, так что нет преимущества совмещения Ctrl-Z по сравнению с just eили x.
В настоящее время существует проект с открытым исходным кодом под названием clink по адресу http://code.google.com/p/clink/ (редактировать: он перемещен на http://mridgers.github.io/clink/ ) - он предоставляет функциональность Unix readline для командная строка Windows.
Он поддерживает большинство функций, включая редактирование из командной строки, поиск в истории, завершение табуляции вместе со скриптами завершения и т. Д. Стоит обратить внимание, что делает cmd отстойным гораздо меньше. ;]
Вы можете получить тот же эффект с помощью этого фрагмента 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фактически является обычным символом, а не специальным символом EOF. Оболочки привязываютсяCtrl+Dк действию GNU Readline или ZLE, которое завершается (но только если буфер редактирования строки пуст), поэтому поведение в основном такое же. НоCtrl+Dэто не EOF с современными снарядами, просто обычный управляющий персонаж. Поведение, когда буфер редактирования не пуст, заметно отличается от того, что происходит со специальным символом EOF.