Câu trả lời:
Số CtrlDtrên * nix tạo EOF, các shell khác nhau diễn giải là đang chạy exit
. Tương đương với EOF trên Windows là CtrlZ, nhưng cmd.exe không diễn giải điều này đặc biệt khi gõ vào dấu nhắc.
bash
et al. đang thực sự làm là một TCC / LE autoexecuting bàn phím bí danh, chẳng hạn như một này , nơi mà các thông dịch lệnh (không phải là giao diện điều khiển) công nhận tổ hợp phím tắt thông thường ALT+F4
trong soạn thảo dòng và thực hiện được xây dựng trong exit
lệnh trong phản ứng.
stty -a
trả về icanon
(tức là không -icanon
). Nhận xét của bạn có With most modern shells, the terminal is not in canonical input mode when the shell is interactively accepting input
thực sự đúng về mặt thống kê tại thời điểm này không?
Alt- Space. Sau đó , C.
Vâng, nó chậm hơn một chút so với Ctrl- D. Nhưng đây là câu trả lời cho chính xác những gì bạn yêu cầu: chuỗi hành trình phím tương đương tích hợp cho phép bạn thoát khỏi dấu nhắc mà không cần phải gõ exit
lệnh. Không cần phần mềm bên thứ ba.
Điều này có thể không hoạt động hoàn toàn giống với bash: bash sẽ chỉ đăng xuất trên một dòng lệnh trống. Trong Windows, điều này có thể đóng cửa sổ, ngay cả khi bạn đã gõ một phần lệnh trên nó.
Bạn có thể sử dụng DOSKEY để tạo các macro trong CMD.exe.
Để tạo một loại macro:
DOSKEY [macroname]=[command(s)]
Bằng cách đó bạn có thể liên kết một khóa với một lệnh khác.
Thí dụ:
DOSKEY e=exit
sẽ liên kết e
với exit
lệnh, vì vậy khi bạn nhập e
dấu nhắc, nó sẽ giống như bạn nhậpexit
Tôi không chắc chắn nếu bạn có thể sử dụng CTRL- $nkết hợp như macro
cmd
chỉ diễn giải chúng như các lệnh thông thường, chờ đợi Enter
để được nhấn, do đó không có lợi thế nào trong việc đặt bí danh Ctrl-Z so với chỉ e
hoặc x
.
Hiện tại có một dự án nguồn mở được gọi là clink tại http://code.google.com.vn/p/clink/ (chỉnh sửa: nó đã được chuyển sang http://mridgers.github.io/clink/ ) - nó mang chức năng đọc đường dẫn Unix đến dấu nhắc lệnh Windows.
Nó hỗ trợ hầu hết các chức năng bao gồm chỉnh sửa dòng lệnh, tìm kiếm lịch sử, hoàn thành tab cùng với các tập lệnh hoàn thành, v.v ... Rất đáng để kiểm tra, làm cho cmd hút ít hơn nhiều. ;]
Bạn có thể nhận được hiệu ứng tương tự với đoạn mã AutoHotKey này :
; 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
trên thực tế chỉ là một ký tự bình thường và không phải là ký tự đặc biệt EOF. Shell liên kếtCtrl+D
với một hành động GNU Readline hoặc ZLE thoát (nhưng chỉ khi bộ đệm chỉnh sửa dòng trống) nên hành vi chủ yếu là kết quả tương tự. Nhưng không phảiCtrl+D
là EOF với hệ vỏ hiện đại, chỉ là một nhân vật điều khiển thông thường. Hành vi khi bộ đệm chỉnh sửa không trống khác biệt rõ rệt với những gì xảy ra với một ký tự đặc biệt EOF.