• ベストアンサー
  • 困ってます

vi のカーソル移動キーの割り当て

vi のカーソル移動は以下のキーが割り当てられています。 h カーソルを左へ移動する。 j カーソルを下へ移動する。 k カーソルを上へ移動する。 l(エル)カーソルを右へ移動する。 これが理解できません。理想的な配置は十字キーと どうようの配置です。一番覚えやすいからです。その場合には以下の割り当てにならなければ不自然です。 <実際の十字キー配置>  ↑ ←↓→ <左手の配置>  i j k l また、完全にホーム ポジションのまま左手を動かしたくないのであれば、「h」キーを割り当てることは不自然です。その場合、小指も使用して以下の配置になるはずです。 jキー: 下 kキー: 上 lキー: 左 ;キー: 右 このように、どの してんから考慮しても、vi のカーソル移動キーの割り当ては不自然といえます。なぜこのような配置になってしまったのでしょうか。理由をご存知の方がいれば教えていただけないでしょうか。 以上、よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • Linux系OS
  • 回答数2
  • 閲覧数547
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
参考URL:
http://blog.remora.cx/2011/12/why-do-we-move-cursor-with-HJKL-in-vim.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なるほど、よくわかりました。ありがとうございます。 ということは、現代の日本語用キーボードでは ベストな割り当てではない、といえますね。

その他の回答 (1)

  • 回答No.2
  • notnot
  • ベストアンサー率47% (4765/10055)

http://blog.remora.cx/2011/12/why-do-we-move-cursor-with-HJKL-in-vim.html 引用部分はともかく、Ctrl-J が復帰(CR)と書いてあるとはトンデモページですね。 Ctrl-J ・・・・ LF(LineFeed) ・・・・ タイプライタで用紙を1行分進める・・・・カーソル下へ Ctrl-M ・・・・ CR(CarriageReturn) ・・・・ タイプライタで用紙を一番右に移動させる・・・・カーソル左端へ(紙が最も右に動くと印字部分は紙の左端へ) です。 なお、ADM-3A等の端末よりASCIIコードの方が古いので、先に Ctrl-H = BS = カーソル左へ、Ctrl-J = LF = カーソル下へ、があって HJKL に矢印が書かれていたものと思います。 キーに書かれてただけじゃなくて、Ctrl-K や Ctrl-L のコードをADM-3Aに送るとカーソルが上や右に動きました。 1980年前後に主流だったPC用英文ワープロソフトだと、「ダイヤモンドカーソル」と言って、 Ctrl-S ・・・・ カーソル左へ Ctrl-D ・・・・ カーソル右へ Ctrl-E ・・・・ カーソル上へ Ctrl-X ・・・・ カーソル下へ Ctrl-A ・・・・ カーソル1語左へ Ctrl-F ・・・・ カーソル1語右へ Ctrl-R ・・・・ カーソル1画面分上へ Ctrl-C ・・・・ カーソル1画面分下へ というのもありました。これはこれで良かった。 vi の hjkl よりある意味ひどいのがemacsの Ctrl-F Ctrl-B Ctrl-P Ctrl-N ですね。慣れましたが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

詳しい説明をありがとうございます。

関連するQ&A

  • viで方向キーが利用できないときって?

     viの学習をする際に、方向キーが使えないときのためにh,j,k,lを使ったカーソルの移動方法も覚えるように言われたのですが、具体的に方向キーが利用できないってケースはあるんでしょうか。  ちなみに当方の環境は、Red Hat Linux 9を使っています。

  • カーソルの移動に矢印キー使っていますか?

    仕事などでパソコンをよく使う方にお聞きしたいことがあります。 皆さんは矢印キーを使ってカーソル移動をしていますか? 私も以前は矢印キーを使っていたのですが、カーソル移動のたびに手をホームポジションから移動させるのが面倒だったので、現在は「猫まねき」というキーバインドの変更を行うツールを用いてAlt+I, J, K, Lを矢印キーに割り当てています。 皆さんは、カーソル移動に矢印キーを使っていますか?また、矢印キーを使わない方はどのようなキーをカーソル移動に割り当てていますか?理由や問題点も教えていただけるとうれしいです。 ちなみに、私がそのようなキーバインドにしている理由は、キーの配置が直感的で、かつ、ホームポジションからの指の移動が最小限に抑えられるからです。 問題点は、同じキーバインドにアプリケーションのショートカットキーが割り当てられている場合に、そのショートカットが使えなくなってしまうことと、他人のパソコンを使うとストレスがたまることです(笑 よろしくお願いいたします。

  • Excelでカーソルの移動がおかしい!

    Excelを使っていて、カーソルがおかしくなってしまいました。。 普通、文字入力を確定して、→キーを押すと右のセルに、←キーを押すと左のセルにカーソルが移動しますよね? それが、左右のキーを押すとシートごと移動してしまい、カーソルがあるセルの位置はそのままなんです。 (カーソルがシートに張り付いちゃった感じ) 上下でも同じです。 マウスで直接セルを指定しないと移動しません。 どうしたら直るのでしょうか? 教えてください! Excel2002です。 よろしくお願いします。

  • vxEditorのキー割り当て専用のコマンドを増やしたい

    vxEditorのキー割り当て専用のコマンドを増やしたい vxEditorでキー割り当てに既定以外のコマンドを増やすことができますか。 たとえば[Ctrl]+[→]でカーソルを行末に移動、 [Ctrl]+[←]でカーソルを行頭に移動など。 教えてください。よろしくお願いします。

  • カーソルが移動しない

    HPビルダーでHPにアップする文章を作成していますが、 「スペース」キーを押しても、カーソルが移動しないことがあります。 しない「ことがある」というのがミソで、 「スペースを押すことにより、カーソルが右へ移動すること」もあるのです。 いつ動いて、いつ動かないのか、 さっぱりわかりません。 さっき気づいたのは、 「Ctrl」を押しながらスペースを押すと、 カーソルが右へ移動してくれました。 何かがロックされているとか、そういう状況なのでしょうか? どなたかご助言ください。

  • カーソルの移動

    VBでLキーを押すとTABキーと同じ動きでカーソルの移動をしてしまいます。 何か設定しているからこのような動きをするのでしょうか?この動きを防ぐ方法を教えていただけないでしょうか?素人なので申し訳ないです。宜しくお願いします。

  • fvwm2のキーボード操作について

    fvwm-2.2.2を使っています。 OSはFreeBSD4.1.1-releaseです。 ~/.fvwmrcい以下のような記述をして、マウスカーソルを キーボードで移動できるようにしています。 Key h A SM CursorMove -10 +0 Key l A SM CursorMove +10 +0 Key k A SM CursorMove +0 -10 Key j A SM CursorMove +0 +10 Key h A SC CursorMove -1 +0 Key l A SC CursorMove +1 +0 Key k A SC CursorMove +0 -1 Key j A SC CursorMove +0 +1 とここまでは順調にきたのですが、 マウスの右クリック、左クリックをキーボードに割り当てる 方法がわからず困っています。 そもそも、このようなことは可能なのでしょうか?

  • excelでカーソルの移動を制限するには?

    Win98でExcel2000です。次のことは可能でしょうか? 1.カーソルの移動を隣あった2列のみに制限し、どのキーを押してもそれ以外には移動できないようにしたい。ただしその2列以外も表示はさせておく。 2.その2列の中で入力後Enterのみでこのように移動する。左の列からは同じ行の右の列へ、右の列からは下の行の左の列へと、つまりZの字を書くようにしたい。

  • カーソルの異常

    文字を打つ時、n・/・¥・mのキーを打つと、カーソルが勝手に左に寄ってしまいます。 →キーを押し続けると、カーソルは右に移動するので良いのですが、 いちいち、→キーを押し続けるわけにもいかず、困っています。 原因と対処法を教えていただきたいと思います。 宜しくお願いします。

  • キーボードの←キーを押すとカーソルが右に動いてしまう

    文字入力時、キーボードの←キーを押すとカーソルが右に動き、→キーを押すとカーソルが左に動いてしまいます。 Excelのあるテキストボックスでのみ、この現象が発生しています。 直し方をご存知の方がいらっしゃいましたら、ご回答よろしくお願いします。