Respostas:
Não. CtrlDOn * nix gera um EOF, que vários shells interpretam como em execução exit
. O equivalente a EOF no Windows é CtrlZ, mas o cmd.exe não interpreta isso especialmente quando digitado no prompt.
bash
et al. o que realmente está fazendo é um alias de teclado de execução automática do TCC / LE , como este , em que o interpretador de comandos (não o console) reconhece a combinação de teclas pressionada ALT+F4
durante a edição da linha e executa o exit
comando interno em resposta.
stty -a
retorna icanon
(ou seja, não -icanon
). Seu comentário está With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting input
realmente estatisticamente correto neste momento?
Alt- Space. Então C,.
Sim, é um pouco mais lento que Ctrl- D. Mas esta é a resposta exatamente para o que você está solicitando: a sequência de pressionamento de tecla equivalente integrada que permite sair do prompt sem a necessidade de digitar o exit
comando. Nenhum software de terceiros é necessário.
Isso pode não funcionar absolutamente idêntico ao bash: o bash fará logout apenas em uma linha de comando vazia. No Windows, isso pode fechar a janela, mesmo se você já tiver digitado um comando parcial.
Você pode usar o DOSKEY para criar macros no CMD.exe.
Para criar um tipo de macro:
DOSKEY [macroname]=[command(s)]
Dessa forma, você pode vincular uma chave a outro comando.
Exemplo:
DOSKEY e=exit
seria vinculado e
ao exit
comando, portanto, quando você insere um e
no prompt, é como se você inserisse umexit
Não tenho certeza se você pode usar CTRL- $ncombinações como macros
cmd
apenas interpreta-os como comandos normais, esperando Enter
que sejam pressionados, para que não haja vantagem de usar o aliasing Ctrl-Z em vez de apenas e
ou x
.
Agora existe um projeto de código aberto chamado clink em http://code.google.com/p/clink/ (edit: foi movido para http://mridgers.github.io/clink/ ) - ele traz a funcionalidade de linha de leitura do Unix para o prompt de comando do Windows.
Ele suporta a maioria das funcionalidades, incluindo edição por linha de comando, pesquisa de histórico, conclusão de guias juntamente com scripts de conclusão, etc. Vale a pena conferir, faz com que o cmd seja muito menos trabalhoso. ;]
Você pode obter o mesmo efeito com esse trecho de 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
é de fato apenas um caractere comum e não um caractere especial EOF. Os shells se ligamCtrl+D
a uma ação GNU Readline ou ZLE que sai (mas apenas se o buffer de edição de linha estiver vazio), portanto o comportamento é basicamente o mesmo resultado. Mas nãoCtrl+D
é EOF com conchas modernas, apenas um personagem de controle comum. O comportamento quando o buffer de edição não está vazio é marcadamente diferente do que acontece com um caractere especial EOF.