← Vim研究所

Vimのhjklと矢印キー、結局どっちを使うべきか

2019-05-09 公開 ・ 更新: 2026-08-09

矢印キーでも移動できるのに、なぜVimmerはわざわざhjklを使うのか、最初は意味が分かりませんでした。実際にホームポジションから手を動かさずに操作してみると、その理由がはっきり分かりました。

目次(6項目)
キーこれだけ覚える
hjkl左・下・上・右へ1文字ずつ移動
矢印キー同じ動作。全モードで使える
5j / 3lカウントを前置して複数文字分まとめて移動

2つの移動手段

方式
hjklhjkl
矢印キー

矢印キーはすべてのモードで使えるのに対し、hjklはノーマルモードとビジュアルモードでのみ動作します(インサートモードでは通常の文字入力になります)。

BEFORE
hello
l
AFTER
hello

hjklが推奨される理由

最大の理由はホームポジションから手を離さずに済むことです。矢印キーを押すには右手をキーボードの右下まで移動させる必要がありますが、hjklはホームポジション付近の右手の位置にそのまま配置されています。移動のたびに手の位置を大きく動かす必要がないぶん、タイピングの流れを止めずに編集を続けられます。

jkの向きが直感と逆に感じる人もいますが、これはキーボード上でのタイプライター的な配置(上の段が上方向、下の段が下方向に対応しない)に由来するもので、慣れの問題としてすぐに解消することが多いです。

カウントと組み合わせる

5j   " 下へ5行移動
3l   " 右へ3文字移動

数字を前置きすれば、その回数分まとめて移動できます。近距離ならこれで十分ですが、10行以上先に移動したいなら{行番号}Gや検索コマンドのほうが速いことが多いです。近距離はカウント付きのhjkl、遠距離はジャンプ系コマンド、と距離に応じて手段を切り替えるのが実用的です。

矢印キーのほうが有利な場面

絶対にhjklを使わなければならないわけではありません。インサートモード中に少しだけカーソルを動かしたいだけなら、いちいちEscでノーマルモードに戻るより矢印キーのほうが早いこともあります。またVimに不慣れな人と画面を共有しながら操作するときは、矢印キーのほうが直感的に伝わりやすくなります。使い分けを頑なに拒む必要はありません。

要点:ノーマルモードでの移動はhjklを基本にすると手の移動が減って効率的です。インサートモード中のちょっとした移動は矢印キーでも実用上まったく問題ありません。
使ってみて

最初の数週間は矢印キーのほうが速く感じていましたが、hjklに慣れてからは他のエディタで矢印キーを使うほうがむしろ遅く感じるようになりました。慣れるまでの数週間さえ乗り越えれば、体に染みついてもう戻らなくなる類のものだと思います。今ではブラウザやチャットツールでも無意識にj/kを押して戸惑うことがあるくらいです。

キーボード配列によっては見直しが必要なことも

hjklが快適に感じるかどうかは、実は使っているキーボードのレイアウトにも左右されます。標準的な配列を前提にした位置なので、独自のキー配列やコンパクトキーボードを使っている場合は、自分の手の大きさや配置に合わせてキーマッピングを調整している人も多いです。デフォルトのまましっくりこない場合は、無理に矯正せず自分なりの配置を探ってみるのも1つの手です。

方向を逆にして、矢印キーが物理的に無い機種を選んでhjklに強制的に慣れる、という進め方もあります。どんな観点でキーボードを選ぶかはVimmerがキーボード選びで重視すべきポイントに、実際の機種を並べた比較はプログラマー向けキーボード比較にまとめています。

まとめ

hjklと矢印キーはどちらも1文字移動という点では同じですが、ホームポジションを維持できるhjklのほうが長期的には効率的です。単語単位・行単位のより大きな移動は単語移動行頭/行末移動を参照してください。

← Vim研究所 トップへ戻る