なぜvimはカーソルキーにhjklを使用するのですか?


56

ビデオゲームでの移動のhjklように、三角形のキーの代わりに同じ行のキーを使用するのはなぜwasdですか?

ijklまたはのような右手に相当するものがないのはなぜpl;'ですか?


3
viの Wikipediaページを確認してください。これには、いくつかのキーバインドを説明する古代のUnixマシンキーボードの写真が含まれています。
クリスチャンブラバンド

3
vim技術の進歩に追いつくことを免除されているため:3
アレクサンダー

3
片手で4本の指をhjklキーに快適に置くことができ、指を前後に動かさずに4方向すべてにカーソルを移動できます。本当に考えてみると、人体構造と一致する唯一のカーソルキーレイアウトは4行です。問題は、実際に他の全員がどうやってそれを間違えるかです。

4
実はそれは上のインデックスを置くことをお勧めしていないhではなく、上のj(あなたが「乳首」を持つ理由ですjキー)。その理由は、あなたが使用することであるbよりもはるかに多くhなると;(とシフトして、あなたが持っているアクセスすると、プログラミング言語の多くに便利ですが:Vimの中でこれまで以上に便利です)。
-nobe4

2
ところで、このトピックは、上の第二のトップ投票質問に覆われているUnixのSE
ドミトリーGrigoryev

回答:


75

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

Bill Joyがviテキストエディターを作成したとき、hjklキーに矢印のあるADM-3Aターミナルを使用しました。当然、彼は同じキーを再利用し、残りは歴史です!

ここに画像の説明を入力してください


27
これはまだすべてのキーボードにあります!:)
albttx

16
今、あなたは私には、Emacsを作った男が...持っていた端末のどのような不思議ガット
leeand00

11
@ leeand00:Symbolics LISP Machine Space Cadet Keyboard。この記事では、キーボードのデザインがEmacsのデザインにどのように影響するかについて明確に説明しています。また、ユビキタスEscapeキーを使用したViのデザインと、ADM-3Aターミナルのキーボードに非常に便利な場所にあるという事実も比較しています。スペースカデットキーボードには、非常に便利なコントロール、メタ、スーパー、ハイパーの各キーがあり、8000以上の文字を入力できる3つ以上の異なるShiftキーもあります。
ヨルグWミットタグ

11
この答え自体は正しいのですが、「ADM-3Aキーボードはなぜhjklより論理的な形ではなく、ADM-3Aキーボードを選択したのijklですか?」
マーティントゥルノイ

2
@Carpetsmoker:私たちは80年代後半まで、キーボードの矢印の場所ロジックを発明しなかったupload.wikimedia.org/wikipedia/commons/3/30/...
ジェイコブ・クラール

21

Nobe4の答えは素晴らしく、私たちがhjkl非常によく使う理由を説明しています。ただし、フルキーボードを見るのは本当に面白いです。vimについての多くの奇妙なことは、それが設計されたフルキーボードを見ることができるとき、より理にかなっています。たとえば、なぜesc奇妙で不快な場所にあるときに、viがキーにそれほど依存しているのでしょうか?これが理由です:

ここに画像の説明を入力してください

ご覧のとおりesc、ほとんどのキーボードのタブがあります。ctrlはもう少し扱いに​​くいキーですが、このキーボードの非常に快適な場所(通常はCaps Lockがあります)にあります。


でしvi持って<Leader>マッピングを?私は...それは、後に発明だと思った
マーティンTournoij

@Carpetsmokerそう思いますが、実際にはわかりません。Vimに:help <leader>は署名{not in Vi}テキストがなく、viには:map(そうではありませんが:noremap)あると書かれているため、viにはリーダーがいると確信しています。そうではなかったとしても、viキーボードの歴史は少なくともvimの設計にある程度影響を与えると思います。
DJMcMayhem

また、ほとんどの結果はvimに関するものであるため、viについての情報をgoogleで見つけることは困難です。
DJMcMayhem

@DJMcMayhem pubs.opengroup.org/onlinepubs/009696699/utilities/vi.htmlおよびroguelife.org/~fujita/COOKIES/HISTORY/1BSD/exrefm.pdfは、vi(POSIXおよび歴史)の適切なリファレンスです。また、nvi、elvis、vile、またはex-vi(ex-viは歴史的なviの子孫です)をダウンロードして、それらの機能やドキュメントを確認することもできます。<leader>viには機能はありません。
Random832 18

また、VimはもともとAmiga(通常の[ISOまたはLarge Enter]ポジションでのバックスラッシュ)向けに開発され、Atari ST(右下隅のバックスラッシュ、過去のエンターでしたが、明らかにそうではありませんでした)に基づいています:mapまったくサポート)
-Random832

17

これらの矢印がこれらのキーに印刷された理由については、ローカルカーソルの移動にコントロールキーと共に使用できるためです。Ctrl-HとCtrl-J(バックスペースとラインフィード)は明らかであり、今日でも簡単なニーモニックです。Ctrl-Kは「垂直タブ」ですが、ANSI以前の端末の逆改行に使用されることもありました。キーボードの位置に基づいて、非破壊カーソルフォワードにCtrl-Lを使用することがおそらく選択されました。

他の回答のキーボードの写真で、「HOME」が^/ ~キーにあることに気づいたかもしれません。もちろん、Ctrl- ^はカーソルをホーム位置にします(モードに応じて、画面の左上または左下に送信します)。

これらの制御マッピングは、Wyse端末、カーミットプロトコルでも使用され、PC ANSI.SYSの一部のバージョンでサポートされていました。

ソース:


^ H、^ K –非常に啓発的。今日は^ Jが下に移動したことを簡単に思い出すからです。アップダウンの割り当てを確実に思い出すことができませんでした。
ミロクスラフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.