Ctrl- Qthực sự là câu trả lời. Tôi nghĩ rằng tôi đã ném vào một lịch sử nhỏ về điều này quá dài để phù hợp với lề của câu trả lời đúng của ak2 .
Quay trở lại thời kỳ tăm tối, thiết bị đầu cuối là một thiết bị lớn được kết nối với thiết bị từ xa (ban đầu là thiết bị đầu cuối khác vì các loại điện thoại rất dễ học hơn so với phím điện báo) qua dây dài hoặc qua đường dây điện thoại có modem. Vào thời điểm Unix đang phát triển, mã ASCII đã được thiết lập tốt (mặc dù mã EBCDIC cạnh tranh từ IBM vẫn còn là một lực lượng được tính toán).
Các thiết bị đầu cuối sớm nhất giữ một bản ghi in của mỗi nhân vật nhận được. Miễn là các ký tự đến không nhanh hơn đầu in có thể gõ chúng, ít nhất. Nhưng ngay khi các thiết bị đầu cuối dựa trên CRT có thể xảy ra, vấn đề nảy sinh là chỉ có khoảng 25 dòng phù hợp với CRT và 25 dòng 80 ký tự đại diện cho đủ RAM mà không ai nghĩ nghiêm túc về việc cung cấp thêm RAM cho các ký tự được cuộn từ trên xuống màn hình.
Vì vậy, một số quy ước là cần thiết để báo hiệu rằng kết thúc gửi sẽ tạm dừng để cho người đọc bắt kịp.
Mã ASCII 7 bit có 33 điểm mã dành cho các ký tự điều khiển (0 đến 31 và 127). Một số những người có mục đích thực sự cũng được thành lập, chẳng hạn như NUL
(lãnh đạo băng giấy trắng cho luồng, khoảng trống, và măng xông), DEL
( "gạch bỏ" ký tự trên băng giấy chỉ định bởi đấm tất cả bảy lỗ), BEL
(ding!), CR
, LF
, Và TAB
. Nhưng bốn được xác định một cách rõ ràng cho việc kiểm soát các thiết bị đầu cuối tự ( DC1
để DC4
aka Ctrl + Q, Ctrl + R, Ctrl + S và Ctrl + T).
Dự đoán tốt nhất của tôi là một số kỹ sư nghĩ rằng (theo cách thức đi), "S" cho "Dừng" và "Q" cho "Tiếp tục" không quá tệ, và được gán DC3
cho nghĩa là "vui lòng dừng gửi" và DC1
có nghĩa là "ok , tiếp tục gửi ngay bây giờ ".
Ngay cả hội nghị đó đã được thiết lập tốt vào thời điểm Unix rời tổ tại Bell Labs để đi ra thế giới.
Quy ước được gọi là điều khiển luồng phần mềm và cực kỳ phổ biến trong các thiết bị nối tiếp thực. Thật không dễ để thực hiện chính xác, vì nó ngăn chặn việc sử dụng một trong hai ký tự đó cho bất kỳ mục đích nào khác trong kênh liên lạc và tín hiệu Dừng phải được xử lý trước bất kỳ ký tự nhận đang chờ xử lý nào để tránh gửi nhiều hơn kết thúc nhận có thể xử lý.
Nếu thực tế, sử dụng các tín hiệu bổ sung ngoài băng từ luồng dữ liệu nối tiếp để kiểm soát luồng được ưu tiên rất nhiều. Trên các kết nối có dây trực tiếp có thể đủ khả năng cho các dây tín hiệu bổ sung, bạn sẽ tìm thấy bắt tay phần cứng đang sử dụng, giúp giải phóng các ký tự đó cho các mục đích sử dụng khác.
Tất nhiên, cửa sổ đầu cuối ngày nay không sử dụng cổng nối tiếp vật lý thực tế, có thanh cuộn và hoàn toàn không cần bắt tay phần mềm. Nhưng quy ước vẫn tồn tại.
Tôi nhớ lại tuyên bố rằng Richard Stallman đã nhận được khiếu nại về việc ánh xạ Ctrl + S của mình để tìm kiếm gia tăng trong các bản phát hành đầu tiên của emacs và rằng anh ta không mấy thiện cảm với bất kỳ người dùng nào phải phụ thuộc vào kết nối được kiểm soát luồng phần mềm 7 bit.
vim
và tôi nhấn Ctrl-S để lưu các chỉnh sửa của mình. Uh-ohXD