75
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

vimはなぜjで下に移動するのか? 〜vim初心者によるvim初心者のためのvim入門〜

本稿は「vim触ってみたけど、全くわからなくて挫折した……」という方向けの、もう一度vimつかってみようよ!という応援記事です。
今回は、カーソルの動かし方がわからなくて挫折しました。という方に向けた「hjklの覚え方」についてまとめてみました。

※この記事はMacVim-KaoriYaについてのものです。他のvimと多少違いがある場合があります。

vimはなぜjでカーソルが下に動くの?↓でいいじゃん、わかりやすいし

これ、私も当初ものすごく困惑しました。
ここで投げ出した方も多いんじゃないでしょうか?

なぜjで下に移動するのか?これがわかればvimの操作をマスターしたも同然です。

皆さんはキーボードを打つときにホームポジションを守っていますか?
私は形から入るタイプなのでこの業界に入るときに必死に覚えました。

もちろん守ってるという人も、守ってない人も、初心に戻ってホームポジションで構えてみてください。

するとどうでしょう。右手の人差指が「j」の位置にありませんか?

「カーソルを下に動かす」という動作はプログラミングをするうえでとても重要な動作です。
上や左右よりも下に動かす機会の方が圧倒的に多いでしょう。
ホームポジションで構えたとき、一番押しやすいキーが一番重要なキーなのです。

「jで下に移動」ではなく「右手の人差指にあるキーを押すと下に移動する」とおぼえてしまえば、頭で(jは下…)と呪文を唱えなくても良くなるのです!

そこからはもう簡単ですね。
キーボードは

h j k l

と並んでいます。
左に行きたいなら「重要なキーより左」右に行きたいなら「最も右」そして「余りが上」に移動するキーなのです。

矢印キー無効でvimレッスン

とはいえ、実際にvimを使い始めてもいつの間にか矢印キーに手が伸びてしまうものです。
頭で理解しても、体が覚えてしまっているのです。
無意識にホームポジションから手を離し矢印キーを使いそしてまたホームポジションに戻る……
ホームポジションから手を動かさずなんでもできるのが魅力のvimです。マウスや矢印キーに手を伸ばした時点でvimの半分以下の性能しか発揮できていないのです。

しかしどうしても矢印キーを押してしまう。しかも矢印キーで動かせちゃうからなかなか癖が抜けない。
そんなあなたはvimの設定ファイルに次の記述をしてみましょう。
vimの設定ファイルはホームディレクトリにある.vimrcです。ファイルが存在しない場合は新しく作ってしまって構いません。

~/.vimrc
" 矢印キーを無効にする
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
inoremap <Up> <Nop>
inoremap <Down> <Nop>
inoremap <Left> <Nop>
inoremap <Right> <Nop>

設定ファイルを保存したらvimを再起動しましょう。
これでもう矢印キーは使えなくなりました。

困ったら「ESC」

カーソルを移動させたいのに文字が入力される、でも元の状態に戻れない!わけがわからないよ!
そんな状態に陥ってしまったら、とりあえずESCキーを押しましょう。
カーソルの形状が「|」から「■」になっていればもう安心。hjklでカーソルが移動できるようになりました!

誰かのパクリからはじめよう

vimは設定次第で様々な機能を追加できる反面、全くカスタマイズしてない状態では使い物になりません。
全くの初心者の状態で一から設定するなんて至難の業です。まずは誰かの設定ファイルを使ってみましょう。

初心者向けに何も考えずに使える設定を書いてみました。まずはシンプルな設定ファイルでvimに慣れましょう。

何も考えず~/.vimrcにこれを書くんだ!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
75
Help us understand the problem. What are the problem?