Lịch sử của Ctrl+C, Ctrl+V, Ctrl+X, và Ctrl+Z
Những phím tắt được dùng hằng ngày là Ctrl+Z, Ctrl+X, Ctrl+C, và Ctrl+V (với hệ điều hành macOS thì thay Ctrl bằng Command). Đây là những phím tắt của Undo, Cut, Copy, và Paste. Thế nhưng nguồn gốc của những phím tắt này là gì, và tại sao chúng lại được gán như thế? Nhân kỷ niệm 21 năm ngày phát hành Windows 3.1 (6/4/1992) – phiên bản đầu tiên sử dụng tổ hợp phím Ctrl+Z, Ctrl+X, Ctrl+C, và Ctrl+V – bài viết hôm nay sẽ phần nào giải đáp những thắc mắc đó.
Nguồn gốc từ Apple
Để hiểu gốc của những phím tắt Ctrl+Z, Ctrl+X, Ctrl+C, và Ctrl+V (tương ứng với Undo, Cut, Copy, và Paste), chúng ta cần ngược dòng lịch sử về đầu những năm 1980 của thế kỷ trước.
Những phím tắt dành cho Undo, Cut, Copy, và Paste lần đầu tiên xuất hiện trên máy tính Apple Lisa vào năm 1983. Lisa là máy tính cá nhân thương mại đầu tiên có GUI và sử dụng chuột. Nó cũng ảnh hưởng lớn đến máy tính Macintosh sau này.
Khi xây dựng giao diện người dùng cho máy tính Lisa, một lập trình viên tên là Larry Tesler đã sử dụng các phím Z, X, C, và V kết hợp phím Apple (các tổ hợp phím lúc đó là Apple+Z, Apple+X, Apple+C, và Apple+V) để thực hiện các lệnh Undo, Cut, Copy, và Paste.
Lưu ý rằng, Apple Lisa chỉ là máy tính đầu tiên đưa các tổ hợp phím tắt cho những lệnh này. Các hoạt động Undo, Cut, Copy và Paste đã được phát triển từ những năm 1970 (lần đầu tiên xuất hiện trên máy tính Xerox Alto). Máy tính Xerox Alto cũng như những nghiên cứu của Xerox PARC đã ảnh hưởng rất lớn đến máy tính Lisa và Macintosh sau này.
Tesler làm việc cho Apple từ năm 1980 (trước đó ông làm việc cho Xerox PARC) đến năm 1997. Ông đã làm việc với rất nhiều sản phẩm như Macintosh, QuickTime, Lisa, v.v… Macintosh và Lisa và những cỗ máy tính đầu tiên phổ biến hoạt động copy-paste – những hành động rất phổ biến ngày nay 🤣.
Khoảng năm 2016, trong một email gửi cho tiến sĩ Brad A. Myers ở đại học Carnegie Mellon University, Tesler đã mô tả lý do lại sao ông lại chọn những tổ hợp phím đó:
The Lisa was the first system to assign XCVZ to cut, copy, paste and undo (shifted with the “apple” key). I chose them myself. X was a standard symbol of deletion. C was the first letter of Copy. V was an upside down caret and apparently meant Insert in at least one earlier editor. Z was next to X, C and V on the U.S. QWERTY keyboard. But its shape also symbolized the “Do-Undo-Redo” triad: top rightward stroke = step forward; middle leftward stroke = step back; bottom rightward stroke = step forward again.
Vào thời điểm đó, Apple+Z hoạt động hơi khác so với bây giờ. Khi người dùng nhấn Apple+Z, nó nghĩa là Undo, nếu ấn thêm một lần nữa, nó sẽ Undo lại lệnh Undo vừa rồi, tương đương với Redo ngày nay. Do hạn chế về bộ nhớ nên việc lưu nhiều thao tác để Undo nhiều bước chưa được đưa vào máy tính. Điều đó khiến cho diễn tả của Tesler về phím Z lại vô cùng hợp lý 😁.
Có thể là có những nguyên nhân khác nữa mà không ai giải thích được tại sao. Thế nhưng có thể khẳng định những tổ hợp phím này đã được nghiên cứu rất kỹ để đem lại sự thoải mái cho người dùng.
Một ưu điểm của những tổ hợp phím này là chúng dùng các phím ở góc dưới bên trái, rất gần các phím modifier như phím Apple của Lisa, Command của Mac, Control của Windows. Vì vậy người dùng rất dễ dàng sử dụng những tổ hợp phím này chỉ bằng một tay, trong khi tay kia vẫn tiếp tục thao tác (ví dụ như cầm chuột).
Khi Apple phát triển máy Macintosh (sau này gọi ngắn lại là máy Mac), tổ hợp phím này từ Lisa được đưa sang máy Mac. Phím Apple được thay thế bằng phím Command trên Mac. Và kể từ năm 1984 các tổ hợp phím Command+Z (Undo), Command+X (Cut), Command+C (Copy), Command+V (Paste) đã được sử dụng đến tận bây giờ.
Sau này khi phát triển hệ điều hành macOS (lúc đầu gọi là MAC OS X, sau đổi lại thành OS X và giờ gọi là macOS) mới dựa trên UNIX, Apple vẫn giữ nguyên những tổ hợp phím này.
Tổ hợp phím được mang lên Windows
Khi Microsoft phát triển giao diện đồ họa cho hệ điều hành Windows, Apple đã cấp phép cho Microsoft sử dụng nhiều thành phần của hệ điều hành Macintosh. Tuy nhiên, Microsoft không muốn sao chép một cách máy móc từ Apple. Kể từ Windows 1.0 đến phiên bản 3.0, hệ điều hành này dùng tổ hợp phím tương đối khác:
Undo : Alt+Backspace
Cut : Shift+Delete
Copy : Ctrl+Insert
Paste : Shift+Insert
Đến tận bây giờ, Windows vẫn tiếp tục hỗ trợ tổ hợp phím cũ cho copy-paste, và vẫn còn nhiều người thích dùng chúng. Khi phát triển hệ điều hành Windows 3.1, Microsoft đã mang tổ hợp phím Ctrl+Z, Ctrl+X, Ctrl+C, và Ctrl+V lên Windows. Trước đó, nó đã được đưa vào phần mềm Microsoft Word (chạy trên Windows 2.0) vào năm 1991, và sau đó lần lượt được đưa lên các ứng dụng khác của Microsoft.
Nguyên nhân không được Microsoft hay các kỹ sư của họ mô tả một cách chính xác. Có lẽ ban đầu, họ muốn mang lại một trải nghiệm đồng bộ cho người dùng Microsoft Office (bộ phần mềm này được phát triển cho Macintosh trước). Hơn nữa, rõ ràng là tổ hợp phím này tiện lợi hơn rất nhiều.
Tạp chí PC Magazine đã nhận ra sự thay đổi này vào năm 1992 khi review hệ điều hành Windows 3.1. Và họ cho rằng nó sẽ gây ra rất nhiều tranh cãi. Thế nhưng thực tế đã chứng minh chẳng có tranh cãi nào cả, người dùng đã nhanh chóng chấp nhận tổ hợp phím mới này.
Vậy là kể từ năm 1992, hệ điều hành Windows cũng đã sử dụng Ctrl+Z, Ctrl+X, Ctrl+C, và Ctrl+V để thực hiện các hành động Undo, Cut, Copy, và Paste. (Tuy nhiên, như đã nói ở trên, các hệ điều hành Windows vẫn giữ cả hai kiểu tổ hợp phím cho người dùng lựa chọn).
Với các bản phân phối Linux thì sao?
Các bản phân phối Linux phát triển giao diện đồ họa chậm hơn hai hệ điều hành trên. Mặc dù X Window System được phát triển từ rất sớm (những năm 1980), nhưng đây là mới chỉ là những bước đầu tiên. Phải đến nửa cuối những năm 1990 thì những desktop environment như KDE, GNOME, Xfce mới phát triển mạnh mẽ dựa trên kiến trúc của X Window System.
Vì được phát triển sau nên hệ điều hành Linux được phát triển để hoàn toàn thương thích với bàn phím Windows, là loại bàn phím phổ biến nhất trên thị trường. Và đương nhiên, các phím tắt của Linux cũng tương tự như Windows. Người dùng Linux cũng có thể sử dụng những tổ hợp phím quen thuộc Ctrl+Z, Ctrl+X, Ctrl+C, và Ctrl+V để thực hiện các hành động Undo, Cut, Copy, and Paste
Thế nhưng, không phải ứng dụng nào cũng như vậy. Công cụ được nhiều người sử dụng trên Linux là các trình giả lập thiết bị đầu cuối (terminal) lại không dùng Ctrl+C để copy. Chính xác thì Ctrl+C trên terminal sẽ gửi tín hiệu để ngắt tiến trình đang chạy, và tiến trình nhận được tín hiệu sẽ dừng lại.
Không chỉ riêng Linux mà terminal trên tất cả các hệ điều hành họ Unix cũng hoạt động như vậy. Đây là hoạt động đã có từ thời người ta còn dùng các thiết bị terminal thật, và máy tính hoạt động rất khác bây giờ. Hiện nay các trình mô phỏng terminal chỉ đơn giản là mô phỏng lại chính xác những hoạt động đó mà thôi.
Còn tại sao lại là Ctrl+C? Thực ra, Ctrl+C không phải do UNIX chọn, mà nó đã tồn tại trước đó rất lâu, từ những năm 1960 trên hệ điều hành TOPS-10.
Lý do cũng rất đơn giản. Máy tính thời đó hoạt động dựa vào tín hiệu được mã hóa theo chuẩn ASCII (được chuẩn hóa từ năm 1963). Và bảng mã này thiếu những ký tự điều khiển như stop hay terminate. Vì vậy người ta đã sử dụng ký tự ETX (0x03 – end-of-text) để thay thế, với ý nghĩa rằng, input cho chương trình đã kết thúc. Xét hoàn cảnh thời đó thì nó là một ý nghĩa chấp nhận được để gửi tín hiệu dừng chương trình. Và vì mã ký tự là 0x03 nên Ctrl+C là tổ hợp phím để gửi tín hiệu đó.
Vì có sự xung đột như vậy trong tổ hợp phím, nên các trình giả lập terminal này sẽ dùng những tổ hợp phím khác cho các thao tác copy, paste. Thực tế hiện nay thì mỗi chương trình lại dùng một tổ hợp phím khác nhau, chưa có sự thống nhất. Dù sao thì terminal cũng không phải một editor nên nó có những đặc thù riêng cũng là điều dễ hiểu.
Welcome
Đây là thế giới của manhhomienbienthuy (naa). Chào mừng đến với thế giới của tôi!
Bài viết liên quan
Bài viết mới
Chuyên mục
Lưu trữ theo năm
Thông tin liên hệ
Cảm ơn bạn đã quan tâm blog của tôi. Nếu có bất điều gì muốn nói, bạn có thể liên hệ với tôi qua các mạng xã hội, tạo discussion hoặc report issue trên Github.