この記事について
テキストエディタの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のコマンドの楽な覚え方を知っている人がいたら、コメントください。