Vimノーマルモード完全マスター!移動・編集・操作のすべてを解説

プログラミング・IT

「Vimを開いたけど、文字が入力できない…」 「カーソルは動くのに、キーを押しても何も起こらない…」 「ESCキーを押せと言われたけど、意味が分からない…」

Vimを初めて使った時、誰もが感じる困惑ですよね。

実は、これがVimの最大の特徴である「ノーマルモード」なんです。最初は戸惑いますが、このモードを理解すれば、マウスを使わずに超高速でテキスト編集ができるようになります。

この記事では、Vimのノーマルモードの基本から、プロが使う高度なコマンドまで、段階的に解説していきます。

読み終わる頃には、「なぜVimmerはノーマルモードを愛するのか」が分かるはずです!

スポンサーリンク

Vimのモードとは? – ノーマルモードの位置づけ

Vimには主に4つのモードがある

主要なモード:

  1. ノーマルモード – コマンド実行・移動(起動時のデフォルト)
  2. インサートモード – 文字入力
  3. ビジュアルモード – 範囲選択
  4. コマンドラインモード – 検索・置換・保存など

モードの確認方法: 画面左下を見れば、現在のモードが分かります。

  • 何も表示されない → ノーマルモード
  • -- INSERT -- → インサートモード
  • -- VISUAL -- → ビジュアルモード

なぜノーマルモードがデフォルトなの?

Vimの哲学:

  • テキスト編集は「書く」より「編集する」時間が長い
  • 移動・削除・コピーなどの操作が中心
  • だから「操作モード」をデフォルトに

普通のエディタと逆の発想なんです!

ノーマルモードへの切り替え – ESCキーが基本

どのモードからでもESCでノーマルモードへ

基本ルール:

どこからでも → ESC → ノーマルモード

代替キー(ESCが遠い場合):

  • Ctrl + [ – ESCと同じ動作
  • Ctrl + c – ほぼ同じ(一部挙動が異なる)

多くのVimmerは、CapsLockキーをESCに割り当てて使っています。

基本の移動コマンド – hjklから始めよう

方向キーを使わない移動

基本の4方向:

    k
    ↑
h ← ● → l
    ↓
    j
  • h – 左へ
  • j – 下へ
  • k – 上へ
  • l – 右へ

ホームポジションから手を動かさずに移動できるのが最大のメリット!

効率的な移動コマンド

単語単位の移動:

  • w – 次の単語の先頭へ(word)
  • b – 前の単語の先頭へ(back)
  • e – 単語の末尾へ(end)

行内の移動:

  • 0 – 行頭へ
  • ^ – 行の最初の文字へ(空白を無視)
  • $ – 行末へ
  • f{文字} – その文字まで移動(find)

画面単位の移動:

  • gg – ファイルの先頭へ
  • G – ファイルの末尾へ
  • {数字}G – 指定行へジャンプ(例:10Gで10行目)
  • Ctrl + f – 1画面下へ(forward)
  • Ctrl + b – 1画面上へ(back)

編集コマンド – ノーマルモードのまま編集

削除コマンド

基本の削除:

  • x – カーソル位置の1文字削除
  • dd – 現在行を削除
  • dw – 単語を削除
  • d$ – カーソルから行末まで削除
  • d0 – カーソルから行頭まで削除

数字との組み合わせ:

  • 3dd – 3行削除
  • 5x – 5文字削除
  • 2dw – 2単語削除

コピー&ペースト(ヤンク&プット)

コピー(ヤンク):

  • yy – 現在行をコピー
  • yw – 単語をコピー
  • y$ – カーソルから行末までコピー

ペースト(プット):

  • p – カーソルの後にペースト
  • P – カーソルの前にペースト

カット&ペースト: 削除(d)した内容は自動的にレジスタに保存されるので、pでペーストできます。

インサートモードへの切り替えバリエーション

状況に応じた入り方

基本の切り替え:

  • i – カーソル位置で挿入(insert)
  • a – カーソルの後で挿入(append)
  • I – 行頭で挿入
  • A – 行末で挿入

新しい行を作って挿入:

  • o – 下に新しい行を作って挿入
  • O – 上に新しい行を作って挿入

置換しながら挿入:

  • r – 1文字置換(replace)
  • R – 置換モード(上書きモード)
  • c – 削除して挿入(change)

検索と置換 – ノーマルモードから実行

検索コマンド

基本の検索:

  • /検索語 – 前方検索
  • ?検索語 – 後方検索
  • n – 次の検索結果へ
  • N – 前の検索結果へ
  • * – カーソル位置の単語を前方検索
  • # – カーソル位置の単語を後方検索

置換コマンド

基本の置換:

:%s/old/new/g    " ファイル全体で置換
:s/old/new/g     " 現在行で置換
:10,20s/old/new/g " 10-20行で置換

便利なオプション:

  • c – 確認しながら置換
  • i – 大文字小文字を無視

アンドゥとリドゥ – 間違えても大丈夫

取り消しと やり直し

基本コマンド:

  • u – アンドゥ(取り消し)
  • Ctrl + r – リドゥ(やり直し)
  • U – 行全体を元に戻す

Vimは非常に強力なアンドゥ機能を持っていて、過去の変更履歴をツリー構造で管理しています。

ビジュアルモードとの連携

範囲選択してから操作

ビジュアルモードへの切り替え:

  • v – 文字単位の選択
  • V – 行単位の選択
  • Ctrl + v – 矩形選択(ブロック選択)

選択後の操作:

  • d – 選択範囲を削除
  • y – 選択範囲をコピー
  • c – 選択範囲を削除して挿入モード
  • > – インデント追加
  • < – インデント削除

高度なノーマルモードコマンド

テキストオブジェクト

便利な範囲指定:

  • diw – 単語を削除(delete inner word)
  • ciw – 単語を変更(change inner word)
  • di" – ダブルクォート内を削除
  • ci( – 括弧内を変更
  • da{ – 中括弧を含めて削除

「inner」は中身だけ、「a」は区切り文字も含みます。

マクロ記録

操作の自動化:

  1. q{レジスタ} – 記録開始(例:qa
  2. 操作を実行
  3. q – 記録終了
  4. @{レジスタ} – マクロ実行(例:@a
  5. @@ – 直前のマクロを再実行

マーク機能

位置を記憶:

  • m{文字} – 現在位置をマーク(例:ma
  • '{文字} – マークした行へジャンプ
  • `{文字} – マークした位置へジャンプ

効率的な組み合わせ技

よく使うコンボ

行の複製:

yyp    " 現在行をコピーして下にペースト

行の入れ替え:

ddp    " 現在行を削除して下にペースト(結果的に入れ替え)

単語の置換:

ciw    " 単語を削除して挿入モードへ

行末までの削除:

D      " d$の省略形

設定でノーマルモードを快適に

おすすめの.vimrc設定

" 相対行番号を表示(移動が楽になる)
set relativenumber

" 検索結果をハイライト
set hlsearch

" インクリメンタルサーチ
set incsearch

" jjでノーマルモードへ(ESCの代替)
inoremap jj <ESC>

" ノーマルモードでもEnterで改行
nnoremap <CR> o<ESC>

よくあるトラブルと対処法

Q: 文字が入力できない

A: ノーマルモードになっています。iを押してインサートモードへ。

Q: 保存方法が分からない

A: ノーマルモードで:w(保存)、:q(終了)、:wq(保存して終了)。

Q: コピペが外部アプリと連携しない

A: システムクリップボードを使う:

  • "+y – システムクリップボードへコピー
  • "+p – システムクリップボードからペースト

練習方法とリソース

段階的な学習法

初級(1週間):

  • hjklでの移動をマスター
  • 基本的な削除とコピペ
  • モード切り替え

中級(2週間目):

  • 単語・行単位の移動
  • テキストオブジェクト
  • 検索と置換

上級(3週間目以降):

  • マクロ記録
  • マーク機能
  • カスタマイズ

おすすめ練習ツール

vimtutor: ターミナルでvimtutorと入力すると、インタラクティブなチュートリアルが始まります。

Vim Adventures: ゲーム形式でVimコマンドを学べるWebサイト。

まとめ – ノーマルモードはVimの心臓部

ノーマルモード、最初は違和感がありますが、慣れると手放せなくなります!

今日学んだポイント:

✅ ノーマルモードは「操作」のためのモード
✅ hjklで方向キーを使わない移動
✅ 削除・コピー・ペーストもノーマルモードで
✅ テキストオブジェクトで効率的な編集
✅ モード間の切り替えを意識的に行う

習得のコツ:

  1. 最初は遅くても構わない
  2. マウスを封印する
  3. 毎日少しずつ新しいコマンドを覚える
  4. よく使う操作から優先的に

Vimのノーマルモードは、「考える速度で編集する」ための最強ツールです。

1ヶ月も使えば、普通のエディタには戻れなくなるでしょう。

Happy Vimming! 🎯

コメント

タイトルとURLをコピーしました