この記事について
テキストエディタのVimを活用するために、最初に覚えるべきコマンドをまとめました。
Vimはコマンドが多いので苦手という人でも、最小限の暗記で使いこなすことが目標です。
整理の観点は、以下の2つです。
- 法則性を理解してから暗記すべきコマンド
→ 【移動×操作】 という法則で整理しています。 - 組み合わせで覚えるべきコマンド
→「定石」として、操作の流れを紹介しています。
なお、本記事は、【超初心者向け】実務で詰まないためのVim - これだけ覚えればOK! の続編です。
「Vimってなに?」、「Vimは全く触ったことがない」という人は、まずは上記記事を読んでみてください。
移動系操作(カーソル移動・スクロール操作)
Vimのコマンドは大量にあるように見えますが、法則性があります。そのため、闇雲な丸暗記はほぼ不要です。
ポイントは、【移動×操作】 という組み合わせで理解することです。丸暗記ではなく、忘れにくい・忘れかけても思い出せる 覚え方をしておくと、学習の負担が軽くなります。
まずは移動の概念から。Vimの移動は、カーソル移動 と、スクロール移動の二種類があります。
| 移動の種類 | 左 | 右 | 上 | 下 | 覚え方・備考 |
|---|---|---|---|---|---|
| 1文字ずつ | h |
l |
k |
j |
hjklのキーボードを←↓↑→に見立てる |
| 単語単位 |
b(前の単語) |
w(次の単語) |
- | - | 単語(word)単位で前に、戻るときは、back(b) |
| 行単位(行頭・行末) |
0(行頭) |
$(行末) |
- | - | 語呂合わせ「0からはじまり、最後はお金($)」 |
| 画面単位(ページスクロール) | - | - |
<Ctrl-u>(半ページ上) |
<Ctrl-d>(半ページ下) |
スクロールはCtrlを使う。上(up)がu、下(down)がd |
| ファイル全体(先頭・末尾) | - | - |
gg(ファイル先頭) |
G(ファイル末尾) |
これはそのまま丸暗記 |
小さな移動(カーソル・単語・行)から順番に覚えて、大きな移動(画面・ファイル全体)という順番で慣れてきましょう。
これらが使えないと、挿入モード(:i)への切り替え → 「カーソルキーー→」で一文字ずつの移動という苦行を毎回の作業で強いられます。
テキストファイルの記述量が多いときほど、大きな移動の必要性が高まります。
スクロールは、コントロールキー:<Ctrl>もセットにする点を忘れないようにしましょう。
操作系コマンド
最低限覚えるべきは、削除・コピー・ペースト・変更の4つです。
| 操作の種類 | コマンド | 覚え方・備考 |
|---|---|---|
| 削除 (delete) | d |
|
| コピー (yank) | y |
|
| ペースト (put) | p / P |
p(カーソルの後ろ)、P(カーソルの前) |
| 変更 (change) | c |
指定範囲を削除し、挿入モードに入る。削除 (d) + 挿入モード (:i)と同じ |
【移動 × 操作】の組み合わせで見えてくる、コマンド操作の広がり
移動と操作の二つを組み合わせることで、複雑な操作も統一的に整理できます。
削除系コマンド
| 削除の範囲 | コマンド | 覚え方・備考 |
|---|---|---|
| 単語削除(前方向) | dw |
w(次の単語へ移動)とセット |
| 単語削除(後方向) | db |
b(前の単語へ移動)とセット |
| 行削除 | dd |
d(削除)を2回で「行全体」削除 |
| カーソルから行頭まで削除 | d0 |
0(行頭)まで削除 |
| カーソルから行末まで削除 | d$ |
$(行末)まで削除 |
| カーソル行を含め、先頭まで削除 | dgg |
gg(先頭へ移動)と組み合わせ |
| カーソル行を含め、末尾まで削除 | dG |
G(末尾へ移動)と組み合わせ |
コピー系コマンド
| コピーの範囲 | コマンド | 覚え方・備考 |
|---|---|---|
| 1文字コピー | yl |
y(ヤンク)+ l(右へ移動)で1文字コピー |
| 単語コピー | yw |
y(ヤンク)+ w(次の単語)で単語コピー |
| 行コピー | yy |
y(ヤンク)を2回で「行全体」コピー |
| カーソルから行頭までコピー | y0 |
0(行頭)までコピー |
| カーソルから行末までコピー | y$ |
$(行末)までコピー |
| カーソル行を含め、先頭までコピー | ygg |
gg(先頭へ移動)と組み合わせ |
| カーソル行を含め、末尾までコピー | yG |
G(末尾へ移動)と組み合わせ |
変更系コマンド
| 変更の範囲 | コマンド | 覚え方・備考 |
|---|---|---|
| 単語変更(前方向) | cw |
w(次の単語へ移動)とセット |
| 単語変更(後方向) | cb |
b(前の単語へ移動)とセット |
| 行変更 | cc |
c(変更)を2回で「行全体」変更 |
| カーソルから行頭まで変更 | c0 |
0(行頭)まで変更 |
| カーソルから行末まで変更 | c$ |
$(行末)まで変更 |
| カーソル行を含め、先頭まで変更 | cgg |
gg(先頭へ移動)と組み合わせ |
| カーソル行を含め、末尾まで変更 | cG |
G(末尾へ移動)と組み合わせ |
ポイント・注意点
操作+移動という順番でコマンドを組み合わせましょう。
操作コマンドを組み合わせると、行全体という移動範囲になります。(dd,yyなど。)
流れで覚えたほうがいいコマンド「定石」集
実務のユースケースに即してまとめるなら、以下の感じ。
複雑なコマンドの組み合わせも、【移動×操作】 の概念を頭に入れておけば、丸暗記の苦痛が緩和されます。
| 操作内容 | コマンド | 覚え方・備考 |
|---|---|---|
| 同じ単語を何回もコピペ |
yw → P
|
yw(単語コピー)→ P(カーソル前にペースト)で増殖 |
| 1行を複製(コピー&ペースト) |
yy → p
|
yy(行コピー)→ p(次の行にペースト) |
| カット&ペースト(行の移動) |
dd → p / P
|
dd(行削除)→ p(次の行に貼る)or P(前の行に貼る) |
| ファイルのすべてをコピー | ggVGy |
gg(先頭へ移動)+ V(ビジュアルモード)+ G(末尾へ移動)+ y(コピー) |
| ファイルのすべてを削除 | ggdG |
gg(先頭へ移動)+ dG(末尾まで削除) |
追加で、個別に覚えるべきコマンドも少しだけ
以下も頻出です。
【移動×操作】の法則からは漏れますが、これらは覚えるしかありません。
| 操作内容 | コマンド | 覚え方・備考 |
|---|---|---|
| 直前の操作を繰り返す | . |
直前に行った操作(削除・ペースト・置換など)をもう一度実行。例: yy(行コピー)→ p(ペースト)→ . を押せば、さらに同じ行が複製される。 |
| 1文字削除 | x |
x はカーソル位置の1文字を削除(Backspace 的な使い方)。3x で3文字削除も可能。 |
結局、どうやって慣れていくのがいいか?
洗練されたVimの操作に慣れて、使いこなせるようになるには、時間をかけて繰り返し使ってみて、使い込んでいくことが重要だと思います。
挿入モード(:iへの依存を減らそう)
カーソル移動で、挿入モード(:i)→カーソルキー(↑↓→←)という組み合わせに頼ることをやめましょう。これだと一文字ずつの移動になり、作業が非効率になります。日々の作業で極力コマンドモードを使い、
- 単語(
w)・行頭(0)・行末($)などといった単位で、まとめて移動する - ファイルの先頭(
gg)・ファイルの末尾(G)・スクロール(<Ctrl-d>)などの、大きな移動を活用する
ことを意識するのがコツです。
自分の作業でよく出てくる「定石」を探そう
順番は気にせず、試したいものから試しましょう。また、本記事で紹介した定石(=コマンドの組み合わせ)は、あくまで一例です。
たとえば、テキストの一括編集や文字の検索置換が必要な場面では、Vimは圧倒的に早くて便利だと思います。
コマンド操作だけでシステマチックに作業が進む快適さを、上記記事では解説しています。
自分の作業を振り返って、繰り返し行っている作業があれば、コマンド操作に落とし込みましょう。 それがあなたにとっての「定石」になります。
まとめ・筆者から一言
本記事では、【移動×操作】 の概念を中心に据えて、Vimコマンドの体系的な整理を試みました。
※Vimの基本操作には検索・置換など、ほかにも大事なテクニックがあると思いますが、本記事からは除外しました。
ほかにも、ややこしい(数が多い)Vimのコマンドの楽な覚え方を知っている人がいたら、コメントください。