Tại sao vim sử dụng hjkl cho các phím con trỏ?


56

Tại sao sử dụng các phím hjkltrên cùng một dòng thay vì các phím trong một hình tam giác như wasdđể di chuyển trên các trò chơi video?

Tại sao không phải là một cái gì đó tương đương với bàn tay phải, như ijklhay pl;'?


3
Kiểm tra trang Wikipedia của vi , nó có chứa hình ảnh của một số bàn phím máy Unix cổ đại giải thích, một số phím bấm.
Christian Brabandt

3
Bởi vì vimđược miễn theo kịp các tiến bộ công nghệ: 3
Alexander

3
Bạn có thể đặt bốn ngón tay của một bàn tay lên các phím hjkl, thoải mái và di chuyển con trỏ cả bốn hướng mà không cần di chuyển ngón tay qua lại. Nếu bạn thực sự nghĩ về nó, bốn liên tiếp là bố cục phím con trỏ duy nhất phù hợp với giải phẫu của con người. Câu hỏi thực sự là làm thế nào mọi người khác quản lý để làm cho nó sai.

4
Trên thực tế, không nên đặt chỉ mục của bạn vào hmà thay vào jđó (đó là lý do tại sao bạn có "núm vú" trên jphím). Lý do cho điều đó là bạn sẽ sử dụng bnhiều hơn hvà có ;thể truy cập rất tiện dụng trong nhiều ngôn ngữ lập trình (và với một ca làm việc, bạn có :tiện ích hơn bao giờ hết trong Vim).
nobe4

2
BTW, chủ đề này được đề cập trong câu hỏi được bình chọn hàng đầu thứ hai trên Unix SE
Dmitry Grigoryev

Câu trả lời:


75

Từ http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/ :

Khi Bill Joy tạo trình soạn thảo văn bản vi, ông đã sử dụng thiết bị đầu cuối ADM-3A, có mũi tên trên các phím hjkl. Đương nhiên, anh ta sử dụng lại các chìa khóa tương tự và phần còn lại là lịch sử!

nhập mô tả hình ảnh ở đây


27
Điều này vẫn nên có trên mọi bàn phím! :)
albttx

16
Bây giờ bạn đã khiến tôi tự hỏi anh chàng nào đã tạo ra emacs ...
leeand00

11
@ leeand00: Bàn phím Cadet Máy không gian LISP tượng trưng . Bài báo nói rõ ràng về cách thiết kế của bàn phím ảnh hưởng đến thiết kế của Emacs và nó cũng so sánh nó với thiết kế của Vi với phím Escape phổ biến của nó, và thực tế là Escape nằm ở vị trí rất thuận tiện trên bàn phím của ADM-3A Terminal . Chà, trên Bàn phím không gian vũ trụ, có các phím Control, Meta, Super và Hyper được đặt rất thuận tiện, cũng như không dưới 3 phím Shift khác nhau cho phép nhập hơn 8000 ký tự.
Jörg W Mittag

11
Mặc dù câu trả lời này là chính xác như vậy, nhưng nó lại di chuyển câu hỏi thay vì trả lời: "Tại sao bàn phím ADM-3A lại chọn hjklvà không có hình dạng logic hơn như ijkl?"
Martin Tournoij

2
@Carpetsmoker: chúng tôi đã không phát minh ra logic vị trí mũi tên trên bàn phím cho đến cuối thập niên 80 tải lên.wik.wik.org / wikipedia / commons / 30/30 / giả
Jacob Krall

21

Câu trả lời của Nobe4 là tuyệt vời, và giải thích lý do tại sao chúng tôi sử dụng hjklrất tốt. Tuy nhiên, thật thú vị khi thấy bàn phím đầy đủ và rất nhiều điều kỳ lạ về vim có ý nghĩa hơn khi bạn có thể thấy bàn phím đầy đủ được thiết kế trên đó. Ví dụ, tại sao vi lại phụ thuộc quá nhiều vào escchìa khóa, khi nó ở một nơi kỳ lạ và khó chịu như vậy? Đây là lý do tại sao:

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy, esclà nơi tab nằm trên hầu hết các bàn phím. ctrllà một phím khác hơi khó tiếp cận, nhưng ở một vị trí rất thoải mái trên bàn phím này (nơi thường có khóa mũ).


Đã vicó một <Leader>bản đồ? Tôi nghĩ đó là một phát minh sau này ...
Martin Tournoij

@Carpetsmoker Tôi nghĩ vậy, nhưng tôi không chắc lắm. Vim's :help <leader>không có {not in Vi}văn bản chữ ký và nó nói vi có :map(mặc dù không :noremap), vì vậy tôi khá chắc chắn rằng vi có người lãnh đạo. Thậm chí nếu nó không, tôi sẽ tưởng tượng lịch sử của bàn phím vi sẽ ít nhất phần nào ảnh hưởng đến thiết kế của vim.
DJMcMayhem

Thật khó để tìm thông tin trên vi thông qua google, vì hầu hết các kết quả cuối cùng là về vim.
DJMcMayhem

@DJMcMayhem pubs.opengroup.org/onlinepub/009696699/utilities/vi.htmlroguelife.org/~fujita/COOKIES/HISTORY/1BSD/exrefm.pdf tương ứng là các tài liệu tham khảo cho vi (POSIX và lịch sử). Bạn cũng có thể tải xuống nvi, elvis, vile hoặc ex-vi (ex-vi là hậu duệ của vi lịch sử) và xem những gì họ làm hoặc tài liệu của họ. Không có <leader>tính năng trong vi.
Random832

Ngoài ra, Vim ban đầu được phát triển cho Amiga (dấu gạch chéo ngược ở vị trí [ISO hoặc Large Enter] thông thường của nó), và dựa trên Stevie dành cho Atari ST (dấu gạch chéo ở góc dưới bên phải, quá khứ, nhưng không rõ ràng hỗ trợ :maptất cả)
Random832

17

Về lý do tại sao những mũi tên này được in trên các phím này ... đó là vì chúng có thể được sử dụng với phím điều khiển để di chuyển con trỏ cục bộ. Ctrl-H và Ctrl-J (backspace và nguồn cấp dữ liệu) là rõ ràng và dễ dàng ghi nhớ ngay cả ngày nay. Ctrl-K là "tab dọc", nhưng đôi khi được sử dụng cho nguồn cấp dữ liệu ngược trên các thiết bị đầu cuối ANSI. Việc sử dụng Ctrl-L cho một con trỏ không phá hủy có thể được chọn dựa trên vị trí bàn phím của nó.

Bạn cũng có thể nhận thấy trong hình ảnh của bàn phím trong câu trả lời khác rằng "HOME" nằm trên phím ^/ ~. Tất nhiên, Ctrl- ^ đặt con trỏ (gửi ở phía trên bên trái màn hình hoặc dưới cùng bên trái, tùy thuộc vào chế độ).

Các ánh xạ điều khiển này cũng được sử dụng cho các thiết bị đầu cuối Wyse, giao thức Kermit và được hỗ trợ trong một số phiên bản của PC ANSI.SYS.

Nguồn:


^ H, ^ K - rất giác ngộ, vì hôm nay tôi sẽ dễ dàng nhớ rằng ^ J di chuyển xuống. Tôi không bao giờ có thể nhớ sự phân công lên xuống một cách đáng tin cậy.
miroxlav
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.