Vimを使ってみたものの、「覚えるコマンドが多すぎる」と感じて挫折した人は少なくないと思います。
w、b、e、dw、ciw、di"……。
Vimの解説を読むと、最初から大量のコマンドが登場します。
しかし、本当に最初からこれらを覚える必要があるのでしょうか。
実はVimは、もっと単純に使えます。
普段使っているエディタの基本操作をVimに置き換えるだけでも、モーダルエディタのメリットは十分にあります。
普通のエディタで何をしているのか
まず、VS Codeやメモ帳などの一般的なエディタで文章を編集するとき、自分が何をしているか考えてみます。
よく使う操作は、だいたい次のようなものです。
| 操作 | キー |
|---|---|
| 移動 | 矢印キー |
| 選択 | Shift + 矢印キー |
| コピー | Ctrl+C |
| 切り取り | Ctrl+X |
| 貼り付け | Ctrl+V |
| 右側を削除 | Delete |
| 左側を削除 | Backspace |
| Undo | Ctrl+Z |
| Redo | Ctrl+Y |
| 全選択 | Ctrl+A |
| 検索 | Ctrl+F |
もちろんエディタには、もっと多くの機能があります。
しかし「文章を編集する」という作業だけを見ると、意外と少ない操作で成り立っています。
基本的には、
移動 → 選択 → 削除・コピー → 入力・貼り付け
の繰り返しです。
一つ一つは簡単。でも何回使っている?
Ctrl+Cでコピーする。
Ctrl+Vで貼り付ける。
Shiftを押しながら矢印キーで選択する。
どれも難しい操作ではありません。むしろ直感的に扱えるからこそ、多くのエディタで標準的な操作として定着しています。
しかし、ここで少し見方を変えてみます。
これらのキーを1時間に何回押しているでしょうか。
矢印キーでカーソルを動かし、Shift+矢印で選択し、Ctrl+Cでコピーする。Ctrl+Vで貼り付け、DeleteやBackspaceで削除し、間違えたらCtrl+Zで戻す。
一回一回は何でもありません。
しかし、文章やプログラムを長時間編集していると、この小さな操作を何度も繰り返しています。
矢印キーやDeleteキーを使えば、ホームポジションから離れた場所へ指を動かします。CtrlやShiftを使う操作では、複数のキーを組み合わせます。
普段はあまりに自然にやっているため、その回数を意識していないだけです。
Vimなら基本操作を一般キーに置き換えられる
ここでVimを見てみます。
先ほどの操作は、おおむね次のように置き換えられます。
| 普通のエディタ | Vim |
|---|---|
| 矢印キー | h j k l |
| Shift + 矢印 | v → h j k l |
| Ctrl+C | y |
| Ctrl+X | d(削除した内容を貼り付け可能) |
| Ctrl+V | p |
| Delete | x |
| Backspace | X |
| Ctrl+Z | u |
| Ctrl+Y | Ctrl+R |
| Ctrl+A | ggVG(全選択相当) |
| Ctrl+F | / |
文字を入力したければiでInsert modeに入り、終わったらEscでNormal modeへ戻ります。
最初は、本当にこれだけでも構いません。
難しいVimコマンドはまだ覚えなくていい
Vimというと、次のようなコマンドがよく紹介されます。
dw
ciw
di"
d$
3dd
確かに便利です。
しかし、これらを最初から覚えようとすると、Vimは急に難しくなります。
まずは、
h j k l
v
y
d
p
x
X
u
Ctrl+R
/
i
Esc
くらいでも文章は編集できます。
しかも、この段階ですでにVimがモーダルエディタであることのメリットを受けています。
なぜNormal modeが必要なのか
普通のエディタでは、yを押せば「y」を入力しなければなりません。
pなら「p」、xなら「x」です。
そのため、コピーや貼り付けなどの編集操作には、Ctrl+C、Ctrl+V、Ctrl+Zのような組み合わせキーを使います。
Vimは違います。
文字を入力するInsert modeと、文章を操作するNormal modeを分けています。
Normal modeでは文字を入力する必要がないため、
y = コピー
d = 削除
p = 貼り付け
x = 1文字削除
u = Undo
のように、押しやすい一般キーをそのまま編集操作に使えます。
つまりVimのモードは、単なる面倒な切り替えではありません。
同じキーボードを「文字入力用」と「編集操作用」の2種類の操作盤として使うための仕組みです。
1回ではなく、繰り返す回数を見る
ここが、Vimを理解するうえで重要なところです。
Ctrl+Cとyを1回ずつ押して比較しても、大した違いはありません。
矢印キーとhjklを1回ずつ押しても同じです。むしろVimに慣れていなければ、矢印キーのほうが簡単でしょう。
しかし、実際の編集では1回では終わりません。
移動する。選択する。削除する。コピーする。貼り付ける。元に戻す。そして、また移動する。
これを長時間、何度も繰り返します。
一つ一つの操作ではなく、その操作を何回繰り返しているかを意識すると、モーダルエディタとモードレスエディタの違いが見えてきます。
Vimは、頻繁に行う編集操作をホームポジション周辺の一般キーへ移しているのです。
慣れてから一つずつ増やせばいい
hjklだけで移動していると、そのうち、
「単語一つ分移動するのに、何度もキーを押すのが面倒だな」
と思うかもしれません。
そのときに初めてwを覚えればいいのです。
vで選択してdで削除する操作を何度も繰り返しているなら、そこでdwのような操作を覚えてもいいでしょう。
単語を書き換えることが多いなら、さらにciwを覚える。
順番は、
コマンドを覚える → 使い道を探す
ではなく、
不便を感じる → それを解決するコマンドを一つ覚える
で十分です。
最初は「制限版Vim」でもいい
極端に言えば、Vimを始めたばかりのころは、
h j k l
v
y
d
p
x
X
u
Ctrl+R
/
i
Esc
ggVG
これ以外の編集コマンドは使わない、と決めてもいいくらいです。
これだけでも、矢印キー、Shift+矢印、Ctrl+C、Ctrl+X、Ctrl+V、Delete、Ctrl+Z、Ctrl+Fといった、普段何度も使っている操作の多くをNormal modeの一般キーへ置き換えられます。
そして、しばらく使ってみる。
必要になったコマンドだけを、そのあと一つずつ追加していけばいいのです。
まとめ
Vimは「大量のコマンドを暗記しなければ使えないエディタ」に見えます。
しかし、最初からVimを極める必要はありません。
普通のエディタで行っていることを考えてみれば、
移動・選択・コピー・削除・貼り付け・Undo・検索
といった、ごく少数の操作を何度も繰り返しています。
VimはNormal modeを使うことで、その頻繁な編集操作を押しやすい一般キーで行えるようにしています。
ciwやdwなどのVimらしいコマンドは、その先で覚えれば十分です。
Vimを始めるなら、まず普通のエディタで毎日使っているキーをVimのキーに置き換えるだけでいい。
一つ一つの差は小さくても、それを何度も繰り返す。
そこに、モーダルエディタを使う意味があります。


コメント