Vimの基礎知識

【Vimの基礎知識】テキスト編集の基本操作(挿入・削除・移動)

VimはLinux環境で広く利用されるテキストエディタであり、効率的に作業を進めるためには「挿入・削除・移動」といった基本操作を正しく理解することが欠かせません。

初めてVimに触れたとき、多くの人が「思ったように文字が入力できない」「削除がうまくいかない」「カーソルが自由に動かせない」といった壁に直面します。

これはVim特有のモード切替とコマンド操作が背景にあるためです。

逆に言えば、この仕組みを理解すれば圧倒的な編集スピードと効率を手に入れることができます。

本記事では、Vimを使う上で避けて通れない挿入・削除・移動の基本操作を整理し、初心者が最初に身につけておくべき知識を体系的に解説します。

もくじ
  1. テキスト編集の基本概要
  2. 挿入モードと基本操作
  3. テキスト削除の基本操作
  4. 移動モードと基本操作
  5. 操作を活用するポイント
  6. よくあるトラブルと対処法
  7. まとめと次のステップ

テキスト編集の基本概要

Vimで作業を進めるうえで、最も多く触れる操作が「挿入」「削除」「移動」です。これらを自在に扱えるようになると、マウスに頼らずキーボードだけで高速に編集できるようになります。

文章を入力し、不要な箇所を素早く取り除き、目的の位置へ一瞬で移動する。この一連の流れを習得することが、Vimを日常的に使うエンジニアにとって最大のメリットです。

単純な文字入力にとどまらず、効率的な修正やリファクタリングを可能にするため、Vimの基盤となるスキルとして理解しておく必要があります。

ノーマルモードと挿入モードの違い

Vimは複数のモードを持つエディタであり、その中でも最も基本となるのがノーマルモードと挿入モードです。

ノーマルモードはテキストの削除や移動といった編集操作を行う場であり、挿入モードは実際に文字を入力する場です。

初心者が「文字が入力できない」と戸惑う原因は、ノーマルモードのままキーを押しているケースが多いため、この違いを理解しておくことでスムーズに作業が進められます。

両者を意識して切り替えることが、効率的な編集の第一歩になります。

コマンドとモーションの組み合わせ

Vimの操作体系の特徴は、コマンドとモーションを組み合わせて使う点にあります。

コマンドは動作の種類を、モーションはその動作を適用する範囲を意味します。例えば「削除する」というコマンドに「単語単位」や「行末まで」といったモーションを組み合わせることで、細かく範囲を指定した編集が可能になります。

この仕組みを理解すると、同じキー入力を基盤にしながら幅広い操作を実現できるようになり、最小限の学習で効率的な編集力を身につけられます。

挿入操作の全体像

挿入モードはVimで文字を入力するための基本動作です。ノーマルモードから切り替えて使う代表的なコマンドには、i, I, a, A, o, O があります。それぞれの使い分けを理解することで、必要な位置に素早く文字を入力できるようになります。

操作動作内容
iカーソルの位置から挿入を開始する
I行頭の最初の文字の前から挿入を開始する
aカーソルの直後から挿入を開始する
A行末に移動して挿入を開始する
o現在の行の下に新しい行を作成して挿入を開始する
O現在の行の上に新しい行を作成して挿入を開始する

i

【出力例:】 挿入モードに切り替わり、ステータス行に「-- INSERT --」が表示されます。

削除操作の全体像

削除はテキスト編集の効率を大きく左右します。削除コマンドを覚えることで、不要な単語や行を素早く取り除くことが可能になります。

操作動作内容
xカーソル位置の文字を削除する
dwカーソル位置から単語の終わりまで削除する
ddカーソルがある行全体を削除する

dd

【出力例:】 カーソルがあった行が即座に消え、次の行が繰り上がって表示されます。

移動操作の全体像

効率的な編集にはカーソル移動が欠かせません。移動コマンドを理解することで、長いファイルでも瞬時に目的の箇所へジャンプできます。

操作動作内容
w次の単語の先頭に移動する
0行頭に移動する
$行末に移動する

w

【出力例:】 カーソルが次の単語の先頭へ瞬時に移動し、削除や挿入の開始地点を素早く指定できます。

ヤンクとペーストの基本

ヤンクはコピー、ペーストは貼り付けに相当する操作です。削除と同じくモーションを組み合わせることで、単語単位や行単位で柔軟に利用できます。これを理解することで、繰り返し使うテキストを効率的に扱えるようになります。

操作動作内容
yy行ヤンク現在の行をコピーする
yw単語ヤンクカーソル位置から単語をコピーする
pペーストカーソル位置の後に貼り付ける

yy

【出力例:】 カーソル行がコピーされ、pで次の行に同じ内容が貼り付けられます。

ビジュアルモードの基礎(任意)

ビジュアルモードは範囲を選択してまとめて操作できる機能です。ノーマルモードのモーション指定よりも直感的に範囲を確認できるのが特徴です。必要な範囲を選んで削除やコピーを行えるため、部分的な修正に役立ちます。

操作動作内容
v文字選択カーソル位置から文字単位で選択する
V行選択カーソル行全体を選択する
Ctrl+v矩形選択列単位で範囲を選択する

V

【出力例:】 カーソル行全体がハイライトされ、そのままdを入力すれば行削除、yを入力すれば行コピーが実行されます。

挿入モードと基本操作

Vimはモードベースのエディタで、挿入(入力)を始めるためのコマンドが複数あります。

画面に表示される「-- INSERT --」はどのコマンドでも同じですが、重要なのは「どの位置から入力が始まるか」です。

誤ったコマンドを押すと余計な移動や削除が発生して手戻りが増えます。

本節では各コマンドの動作を「操作前の状態」「実際に押すキー(コマンド)」「操作後の状態(テキスト変化)」の順で示し、設計手法としていつどのコマンドを使うべきかを明確にします。

挿入開始位置の設計方針(導入)

挿入系コマンドは用途で大きく二系統に分かれます。

一つは「同じ行の内部で入力開始位置を変える系(i / I / a / A)」、もう一つは「新しい行を作る系(o / O)」です。まずは使い分けの設計方針を理解してください。

挿入開始位置の違い

  • 行内で小さく修正したいときは i / a を優先します。
  • 行全体の先頭/末尾にまとめて追記するなら I / A を使います。
  • 内容を新しい行に分けて書きたいときは o / O を選びます。

「i」: 現在位置の直前から挿入(細かい部分修正向け)

現在のカーソル位置の直前から入力が始まります。

単語の途中や文字の前に差し込みたい場合に使います。無駄なカーソル移動を避けられるのが利点です。

  1. 操作前(カーソルが W の位置)

    Hello [W]orld

  2. カーソルが W の位置でキーボードで「i」コマンド入力

    i

  3. 【出力例:】

    -- INSERT --

  4. 操作後(ここで Start と入力)

    Hello StartWorld

「I」: 行頭から挿入(行全体の先頭追記向け)

どの位置にカーソルがあっても、その行の先頭へ移動してから入力を始めます。

ログ行やコメントの先頭に追記するのに適しています。行頭へ移動するための手順を省けるのが利点です。

  1. 操作前(任意のカーソル位置)

    Hello World

  2. 任意のカーソル位置で「I」コマンド入力

    I

  3. 【出力例:】

    -- INSERT --

  4. 操作後(Start と入力)

    StartHello World

「a 」:現在位置の直後から挿入(既存文字の後ろに追加)

カーソル直後から入力を始めます。

既にある単語の末尾に文字を足すなど、直後への追加が目的のときに便利です。i と使い分けることで微細な編集が素早くなります。

  1. 操作前(カーソルが H の位置)

    [H]ello World

  2. カーソルがHの位置で「a」コマンド入力

    a

  3. 【出力例:】

    -- INSERT --

  4. 操作後(Start と入力)

    HStartello World

「A」:行末から挿入(行の最後に追記)

どの位置にカーソルがあってもその行の末尾へジャンプして入力を開始します。

文章末尾やコードの行末コメント追加など、行全体の末尾に追記する場面で最速です。

  1. 操作前(任意のカーソル位置)

    Hello World

  2. 任意のカーソル位置で「A」コマンド入力

    A

  3. 【出力例:】

    -- INSERT --

  4. 操作後(" Start" と入力)

    Hello WorldStart

「o」: 現在行の下に新しい行を作成して挿入(段落や追記を下に分ける)

現在行の直下に新しい行を挿入して、そこの先頭から入力を開始します。内容を行を分けて整理したいときに使います。既存行を壊さず追記できる点が利点です。

  1. 操作前(任意のカーソル位置)

    Hello World

  2. 任意のカーソル位置で「o」コマンド入力

    o

  3. 【出力例:】

    -- INSERT --

  4. 操作後(Start と入力)

    Hello World
    Start

「O」: 現在行の上に新しい行を作成して挿入(既存の前に追記)

現在行の直上に新しい行を挿入して、そこの先頭から入力を始めます。見出しや前置きの追加など、既存行の前に情報を入れたいときに有効です。

  1. 操作前(任意のカーソル位置)

    Hello World

  2. 任意のカーソル位置で「O」コマンド入力

    O

  3. 【出力例:】

    -- INSERT --

  4. 操作後(Start と入力)

    Start
    Hello World

行内での微修正は i(前に挿入)と a(後ろに追加)で十分です。行全体にまとめて追記するなら I(行頭)と A(行末)を使い、行構造を変えたいときは o / O で新しい行を作る、というルールを常に意識してください。

これにより無駄な移動・削除が減り、一貫した編集フローが設計できます。

テキスト削除の基本操作

Vimの削除コマンドは、カーソル位置の1文字から行全体、範囲指定、複数行まで対応できます。

操作前のテキスト、実行コマンド、削除後の出力例を順番に示すことで、動作を理解できます。

「x」:カーソル位置の1文字を削除する

  1. 操作前(カーソルが eの位置)

    H[e]llo World

  2. カーソルがeの位置で「x」コマンド入力

    x

  3. 【出力例:】

    Hllo World

「dw」:カーソル位置の1文字を削除する

  1. 操作前(カーソルが H の位置)

    [H]ello World

  2. カーソルがHの位置で「dw」コマンド入力

    dw

    【出力例:】

    World

「dd」:カーソルがある行全体を削除する

  1. 操作前(2行目の L にカーソル)

    Line1
    [L]ine2

  2. カーソルが2行目のLの位置で「dd」コマンド入力

    dd

  3. 【出力例:】

    Line1

範囲を指定した削除の方法

Vimの削除コマンドは「d」と「移動コマンド」を組み合わせる設計で成り立っています。最初に「d」を押すとVimは「どこまで削除するのか」を待機し、続けて入力するキーによって削除範囲が決まります。つまり削除は固定の専用コマンドを覚えるのではなく、移動操作を応用するだけで自在に組み立てられるのです。

コマンド動作内容
d0カーソル位置から行頭までを削除する
d$カーソル位置から行末までを削除する
d2wカーソル位置から2単語分を削除する
dj現在行と1行下を削除する
dk現在行と1行上を削除する

例えば、単語の末尾まで移動する「w」と組み合わせれば「dw」で単語削除、行末へ移動する「$」なら「d$」で行末まで削除、行頭へ移動する「0」なら「d0」で行頭まで削除になります。同じ発想で、1行下へ移動する「j」を加えれば「dj」で現在行と次の行を削除、1行上へ移動する「k」なら「dk」で現在行と前の行を削除できます。

この仕組みを理解しておけば、削除操作を丸暗記する必要はなく、普段使っている移動コマンドをそのまま削除に応用できるため、編集効率が大きく向上します。

カーソル位置から行頭、行末、複数単語や行までをまとめて削除できます。

「d0」カーソル位置から行頭までを削除する

  1. 操作前(カーソルが f の位置)

    Path/to/[f]ile.txt

  2. カーソルがfの位置で「d0」コマンド入力

    d0

  3. 【出力例:】

    ile.txt

「d$」カーソル位置から行末までを削除する

  1. 操作前(カーソルが f の位置)

    Path/to/[f]ile.txt

  2. カーソルがHfの位置で「d$」コマンド入力

    d$

  3. 【出力例:】

    Path/to/

「d2w」カーソル位置から2単語分を削除する

  1. 操作前(カーソルが b の位置)

    foo [b]ar baz qux

  2. カーソルがbの位置で「d2w」コマンド入力

    d2w

  3. 【出力例:】

    foo qux

「dj」現在行と下1行を削除する

  1. 操作前(カーソルが beta の b の位置)

    alpha
    [b]eta
    gamma

  2. カーソルが beta の b の位置で「dj」を入力

    dj

  3. 【出力例:】

    alpha

「dk」現在行と上1行を削除する

  1. 操作前(カーソルが beta の b の位置)

    alpha
    [b]eta
    gamma

  2. カーソルが beta の b の位置で「dk」を入力

    dk

  3. 【出力例:】

    gamma

削除操作とヤンク(コピー)の関係

Vimでの削除は自動的にヤンクバッファに保存されます。貼り付けコマンドを組み合わせることで、切り取りと同じ操作になります。

「D」カーソル位置から行末までを削除する

  1. 操作前(カーソルが W の位置)

    Hello [W]orld

  2. カーソルが W の位置で「D」を入力

    D

  3. 【出力例:】

    Hello

「p」削除またはヤンクした内容を貼り付ける

  1. 直前の「D」で削除した内容を貼り付け

    p

  2. 【出力例:】

    Hello World

移動モードと基本操作

効率的な編集には、カーソルを素早く移動できることが欠かせません。

移動コマンドを理解することで、長いテキストでも目的の箇所へ瞬時にアクセスできます。

ここでは基本となる代表的な移動操作を整理します。

「w」:次の単語の先頭に移動

  • 操作前(カーソルが H の位置)

    [H]ello World

  • カーソルが H の位置で「w」を入力

    w

  • 【出力例:】カーソルが「World」の先頭に移動します

    Hello [W]orld

「0」:行頭に移動

  • 操作前(カーソルが W の位置)

    Hello [W]orld

  • カーソルが W の位置で「0」を入力

    0

  • 【出力例:】カーソルが行の先頭「H」に移動します

    [H]ello World

「$」:行末に移動

  • 操作前(カーソルが e の位置)

    Hell[o] World

  • カーソルが e の位置「$」を入力

    $

  • 【出力例:】カーソルが行末「d」に移動します

    Hello Worl[d]

操作を活用するポイント

ここまで紹介した挿入・削除・移動を単体で使うのではなく、組み合わせることで操作の効率は大きく高まります。ここでは、具体的な操作例を段階的に整理します。

挿入と削除を組み合わせた効率化

削除と同時に挿入を行うことで、不要な部分を取り除きながら素早く書き換えられます。

cw 単語の置き換え

  1. 操作前(カーソルが W の位置)

    Hello [W]orld

  2. カーソルが W の位置で「cw」を入力

    cw

  3. 【出力例:】"World" が削除され、挿入モードに切り替わります

    Hello

cc 行の置き換え

  1. 操作前(カーソルが l の位置)

    He[l]lo World

  2. カーソルが l の位置で「cc」を入力

    cc

  3. 【出力例:】行全体が削除され、挿入モードに切り替わります

     

移動と検索を組み合わせた効率化

移動に検索を加えると、長文の中でも修正対象へ素早く到達できます。

f コマンドで文字へ移動

  1. 操作前(カーソルが H の位置)

    [H]ello World

  2. カーソルが H の位置で「fw」を入力

    fw

  3. 【出力例:】カーソルが最初の "w" に移動します

    Hello [W]orld

/ コマンドで文字列検索

  1. 操作前(カーソルが H の位置)

    [H]ello World

  2. カーソルが H の位置で「/World」を入力

    /World

  3. 【出力例:】"World" の先頭にカーソルが移動します

    Hello [W]orld

実務で役立つ操作パターン

検索や削除・挿入を連携させると、繰り返し作業を一気に効率化できます。

関数名を検索して置き換え

  1. 操作前(カーソルが H の位置)

    [H]ello World

  2. カーソルが H の位置で「/World ↵ → cw」を入力

    /World ↵ → cw

  3. 【出力例:】"World" が削除され、挿入モードで新しい単語を入力可能

    Hello

コメント行を一括置き換え

  1. 操作前(カーソルが T の位置)

    [T]ODO: fix code

  2. カーソルが T の位置「cc」を入力

    cc

  3. 【出力例:】行全体が削除され、挿入モードに切り替わります

     

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

Vimを使い始めると、多くの初心者が「入力できない」「削除しすぎた」「カーソルがどこかに行ってしまった」などの壁に直面します。これらはVim特有の仕組みを理解すればすぐに解決できるものばかりです。ここでは代表的なトラブルとその対処法をまとめます。

挿入モードから戻れない場合の対応

最も多い質問が「挿入モードから抜け出せない」というものです。通常のエディタは入力専用ですが、Vimはモードを切り替えて使うため、Escキーで戻ることを覚える必要があります。

Escでノーマルモードに戻る

  1. 操作前(挿入モードで入力中)

    Hello World -- INSERT --

  2. 「Esc」を入力

    Esc

  3. 【出力例:】「-- INSERT --」の表示が消え、ノーマルモードへ戻ります

    Hello World

誤ってテキストを削除した場合の対処法

間違えて削除してしまったときも慌てる必要はありません。Vimには直前の操作を取り消す「アンドゥ」と、やり直す「リドゥ」が備わっています。

uで直前の削除を取り消す

  1. 操作前(ddで行を削除した直後)

    Hello World

  2. 「u」を入力

    u

  3. 【出力例:】削除した行が復元されます

    Hello World

Ctrl + rで取り消しをやり直す

  1. 操作前(uで削除を取り消した直後)

    Hello World

  2. 「Ctrl + r」を入力

    Ctrl + r

  3. 【出力例:】削除操作が再び実行されます

     

カーソル移動で迷子になった場合の確認方法

移動コマンドが多彩なVimでは、気づかないうちにカーソルが意図しない場所へ飛ぶことがあります。そんなときは「位置の確認」と「ジャンプ履歴」が役立ちます。

Ctrl + gで現在位置を確認

  1. 操作前(長いファイルでカーソルが行中にある状態)

    ...[H]ello World...

  2. 「Ctrl + g」を入力

    Ctrl + g

  3. 【出力例:】ステータス行に現在の行番号と全体に対する割合が表示されます

    "file.txt" 120L, 450C 45%

Ctrl + o / Ctrl + iで移動履歴をたどる

  1. 操作前(検索やジャンプで位置が変わった状態)

    Hello [W]orld

  2. 「Ctrl + o」を入力

    Ctrl + o

  3. 【出力例:】直前のカーソル位置へ戻ります

    [H]ello World

  4. 「Ctrl + i」を入力

    Ctrl + i

  5. 【出力例:】ジャンプ履歴を進めて再び移動できます

    Hello [W]orld

まとめと次のステップ

ここまで、Vimでのテキスト編集に欠かせない「挿入」「削除」「移動」の基本操作を整理してきました。単純な文字入力にとどまらず、コマンドとモーションの組み合わせや検索との連携を覚えることで、作業効率は格段に向上します。Vimを単なるテキストエディタではなく「生産性を高めるツール」として使えることが実感できたはずです。 学んだ内容を振り返ると、次のポイントが重要です。

分野学んだ操作メリット
挿入i, a, o, cw, cc入力できないという初心者の壁を超え、削除と置き換えを一度に行える
削除x, dw, dd文字・単語・行を自在に削除し、編集のスピードを上げられる
移動w, 0, $, f, /長い文章でも狙った位置にすぐ移動できる
修正対処u, Ctrl+r, Ctrl+g, Ctrl+o/i誤操作や迷子状態から素早く復帰できる

この基礎を押さえたことで、Vimで「文章を入力する」だけでなく「効率的に編集する」段階に進めます。次に学ぶべきは以下のステップです。

検索と置換を学ぶ

ファイル全体から単語を探し出したり、まとめて修正したりする操作は実務で欠かせません。

/pattern

:%s/old/new/g

を習得することで、大量のコードや文章を一括管理できるようになります。

ビジュアルモードを習得する

マウスを使わずに範囲選択ができるのがビジュアルモードです。

コピー・削除・置換などを柔軟に行えるため、より直感的に編集できます。単語単位や行単位だけでなく、ブロック単位での選択も可能です。

この次のステップを押さえることで、Vimは単なる学習の対象ではなく、仕事の現場で戦力となる編集環境に進化します。

記事を読み進めるごとに、自分の作業フローに合わせた「Vimの使い方」を確立できるでしょう。

次に学ぶべき操作や設定

保存と終了が理解できたら、次はより実用的な操作に進むと良いでしょう。

ポイント

  • テキスト編集の基本操作(挿入・削除・移動)
     カーソル移動や文字削除など、日常的に使う操作を習得します。
  • 検索・置換・コピー・ペースト
     テキスト処理の効率が一気に上がり、実務での利用価値が広がります。
  • .vimrcによる設定変更
     自分に合ったショートカットや表示設定を整えることで、Vimをさらに使いやすくできます。

🟢 Vimの基礎知識シリーズは段階的に進められる構成になっており、入門から実践、応用、カスタマイズまで体系的に学べます。

次のおすすめ記事

挿入・削除・移動といった基本編集を身につけたら、次は「vi」と「vim」の違いを理解しておきましょう。現場でよく直面する環境差を把握しておくことで、作業の混乱を避けられます。次の記事で詳しく確認してください。
本サイトにて記載のすべてのスクリプト利用により発生した利用者の損害全てに対し、いかなる責任をも負わないものとし、損害賠償をする一切の義務はないものとします。また、この記事は、実際の案件対応を通じて得た知見をもとに筆者が作成したものであり、全コードと解説は著者本人による設計・検証結果に基づいています。

よく読まれている記事

1

「シェル」と「シェルスクリプト」という言葉を聞いたことがありますか?どちらもLinuxやMacのターミナルで使われるものですが、それぞれの役割や使い方には違いがあります。 本記事では、「シェル」と「シ ...

2

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか? 無料で使えるだけでなく、高い柔軟 ...

3

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-Vimの基礎知識