
Vimを使っていると「特定の文字列をすぐに探したい」「同じ単語を一括で置き換えたい」「コピーした範囲を別の場所に貼り付けたい」と思う瞬間はありませんか。
これらはどれも編集作業で頻繁に登場する操作ですが、Vimには独自のコマンド体系があり、慣れていないと「思った通りに動かない」「どこにコピーされたのかわからない」といった戸惑いに直面しやすい部分です。
そこで本記事では、検索・置換・コピー・ペーストといった基本操作を一つずつ整理し、初心者でも確実に理解できるようにまとめます。
単なる操作の暗記にとどまらず、Vimならではの効率的な使い方や応用のヒントも交えながら解説することで、作業スピードを大幅に向上させる足がかりとなるでしょう。
Vimの基礎知識
🟢 Vimの基礎知識
📌 Linuxで必ず触れるテキストエディタの入門から応用までを体系化
└─【Vimの基礎知識】入門から応用までを体系化した学習ロードマップ
├─ 入門編(初心者向け)
| ├─ 【Vimの基礎知識】ゼロから始めるVim入門とモード終了、コマンド基本操作
| ├─ 【Vimの基礎知識】テキスト編集の基本操作(挿入・削除・移動)
| ├─ 【Vimの基礎知識】viとvimの違い|現場で覚えるべきポイント
| ├─ 【Vimの基礎知識】VimとEmacsの違い|Linux現場で使われるエディタの選び方
| └─ 【Vimの基礎知識】主要コマンド一覧|移動・編集・検索・コピーモード切替の早見表
├─ 活用編(中級者向け)
| ├─ 【Vimの基礎知識】検索・置換・コピー・ペーストの操作まとめ
| ├─ 【Vimの基礎知識】マウス不要!カーソルを乗せたら勝ち確定|ビジュアルモード
├─ 実践編(実務で役立つ)
| ├─ 【Vimの基礎知識】Vimで複数ファイルを同時編集する方法とウィンドウ分割の基本
| ├─ 【Vimの基礎知識】外部コマンド&シェル連携でVimを超実用ツールへ進化
├─ 応用編(上級者向け)
| ├─ 【Vimの基礎知識】マクロを活用した自動編集テクニック
| ├─ 【Vimの基礎知識】正規表現を使った高度なテキスト編集
└─ 設定編(カスタマイズ)
├─【Vimの基礎知識】Vimを使いこなす基礎:.vimrcで快適な開発環境を構築する方法
└─【Vimの基礎知識】VSCodeでVimを使う方法|GUIで再現するVim操作
検索・置換・コピー・ペーストの概要

Vimを使う上で避けて通れないのが、検索や置換、コピー・ペーストといった基本操作です。これらは単なる文字編集にとどまらず、効率的に作業を進めるための大きな武器となります。
特定の単語を一瞬で探し出せる検索、文章全体を一括修正できる置換、そして必要な部分を素早くコピーして別の場所に貼り付ける操作は、時間を大幅に節約し正確性を高める効果があります。
単純作業の繰り返しを減らすことで集中力も維持しやすくなり、長時間の作業でもパフォーマンスを落とさずに編集を続けられる点も大きなメリットです。
基本操作を学ぶ意義と利用シーン
検索や置換、コピー・ペーストは初心者が最初に習得すべき操作であり、理解度が深まるほど応用力が広がります。
例えば、コードレビューの際に変数名を一括で変更したり、大量のログファイルからエラー行を素早く探し出したりする場面で役立ちます。
また、コピーとペーストを自在に扱えることで、既存のコードや文章を再利用して効率よく作業を進めることができます。
これらの操作は日常的に必ず使うため、早い段階でマスターすることで「使えるエディタ」としてVimの真価を実感できるでしょう。
直前の置換コマンドを再利用する方法
& を使う方法 直前に実行した :s コマンドを、そのままもう一度繰り返します。
:&
【出力例:】
:s/Linix/Linux/g
2 substitutions on 2 lines
説明:この例では直前の :s/Linix/Linux/g がもう一度実行され、同じ置換処理が再実行されます。
:s のみ入力する方法 何も書かずに :s だけ入力すると、直前に使った置換パターンがそのまま再利用されます。
:s
【出力例:】
Linux is popular.
Many engineers use Linux for study.
Linux is often compared with other OS.
0 substitutions on 3 lines
説明:前回の検索語と置換語を引き継いで実行されます。もしすでに全て置換済みなら「0 substitutions」と表示されます。
ヒストリーから呼び出す方法 コマンドラインモード(:)で ↑ キーを押せば、直前の置換コマンドを履歴から呼び出せます。必要なら修正して再実行できます。
置換の基本操作
Vimにおける置換は「範囲 + s(substitute)」で表現されます。
このとき範囲を指定しない場合、現在カーソルがある行だけが対象になります。この仕様を理解しないと、「確かにコマンドを実行したのに一部しか直っていない」という混乱を招きます。
ここではカーソル位置ごとの挙動と、範囲指定を加えた場合の違いを順に見ていきます。
サンプルファイル(sample.txt)
まず、次のようなファイルをVimで開いてテストします。
Linix is popular.
Many engineers use Linix for study.
Linix is often compared with other OS.
ケース1:カーソルが1行目にある場合
範囲を省略して :s を実行すると、カーソルがある行だけが対象になります。
:s/Linix/Linux/
【出力例:】(カーソルが1行目にある状態でコマンドを実行)
Linux is popular. 👈 この行だけが対象
Many engineers use Linix for study.
Linix is often compared with other OS.
1 substitution on 1 line
説明:1行目だけが置換され、他の行はそのまま残っています。
ケース2:カーソルが3行目にある場合
同じコマンドでも、カーソル位置が変われば置換される行も変わります。
:s/Linix/Linux/
【出力例:】(カーソルが3行目にある状態でコマンドを実行)
Linix is popular.
Many engineers use Linix for study.
Linux is often compared with other OS. 👈 この行だけが対象
1 substitution on 1 line
説明:3行目だけが置換されました。Vimの挙動はカーソル位置に依存します。
ケース3:行内の複数一致をまとめて置換
- 3行目に移動
vimで sample.txt を開き、まず 3G と入力してカーソルを3行目に移動します。3G
- テキスト編集
3行目の「Linix is often compared with other OS.」を「Linix Linux is often compared with other OS.」に編集して、同じ行の中に「Linix」という文字列が複数存在する状態にします。Linix is popular.
Many engineers use Linix for study.
Linix Linix is often compared with other OS. - 行内の全一致を置換
:s/Linix/Linux/g
【出力例:】(Vim のメッセージ部分)2 substitutions on 1 line
- 実際の内容を確認(:3p を手動で実行)
:3p
【出力例:】(この時点で初めて置換後の行が表示される)Linux Linux is often compared with other OS.
- ファイルの確認
Linix is popular.
Many engineers use Linix for study.
Linux Linux is often compared with other OS. 👈 置換されている
置換コマンドの基本挙動
Vim の置換コマンド
:s は、範囲を指定しない限りカーソルがある行だけに作用します。
以下のように挙動が変わります。
- :s/検索/置換/ → カーソルがある行の最初の一致だけを置換します。
- :s/検索/置換/g → カーソルがある行のすべての一致を置換します。1行に同じ単語が2回出ていれば、2か所とも置換されます。
- :%s/検索/置換/g → ファイル全体を対象にして、すべての行にある一致を一度に置換します。
置換を実行すると、通常は次のようなメッセージが画面下に表示されます。
- 1か所だけ置換された場合 → 1 substitution on 1 line
- 2か所置換された場合 → 2 substitutions on 1 line
- 複数行にまたがって置換された場合 → n substitutions on m lines
ただし、このメッセージが表示されないケースもあります。
- report オプションの値が大きい場合(例:report=9999 だと少数の置換ではメッセージが出ません)
- 古い vi 互換モードで起動している場合(vi コマンドで起動すると Vim 拡張が効かないことがあります)
- 実行直後のメッセージを見逃した場合(:messages で直前の結果を確認できます)
ケース4:ファイル全体を一括置換
ファイル全体を対象にする場合は `%` を付けます。
:%s/Linix/Linux/g
【出力例:】
Linux is popular.
Many engineers use Linux for study.
Linux is often compared with other OS.
3 substitutions on 3 lines
説明:全行にある誤記が一度で修正されました。これが最も実務で使う場面が多い方法です。
ファイル全体を一括置換では、通常であれば「3 substitutions on 3 lines」といったメッセージが表示されます。
しかし環境によってはこのメッセージが出ないことがあります。理由はケース3と同じで、report オプションの設定や vi 互換モードでの起動などが影響しています。
行番号を表示する方法とカーソル位置の確認
Vimでは、置換を行うときに「どの行が対象になるのか」を明確にする必要があります。
ファイルを開いた直後のカーソル位置は環境によって異なり、末尾にある場合もあれば先頭にある場合もあります。
そのため、まず行番号を表示し、次にカーソルの位置を確認してから作業を始めるのが安全です。
ポイント
- :set number : 行番号を表示します。
- :echo line('.') :カーソルの位置を行番号で返します。
:set number
:echo line('.')
【出力例:】
1 Linux is popular.
2 Many engineers use Linux for study.
3 Linux Linux is often compared with other OS.
~
3
画面左に行番号が表示され、そのうえでカーソルが3行目にあることを示しています。
コピー・ペーストの基本操作

Vimで効率的に編集を進めるためには、コピーとペーストの仕組みを理解することが欠かせません。
単純に1行をコピーする場合から、複数行や特定範囲を対象にする場合まで、基本を押さえておけば作業のスピードが大きく変わります。
ここでは sample.txt を例に、コピーとペーストの具体的な方法を整理します。
yankによるコピー
Vimではコピー操作を「yank」と呼びます。
1行をコピーする場合は yy を実行し、その内容を貼り付けるには p を使います。
p を実行すると、コピーした行は 現在のカーソル行の直後 に挿入されます。
:e sample.txt
【出力例:】
Linix is popular.
Many engineers use Linix for study.
Linix is often compared with other OS.
1行目にカーソルを置いた状態で次を実行します。
yy
p
【出力例:】
Linix is popular.
Linix is popular. 👈 ペーストされる
Many engineers use Linix for study.
Linix is often compared with other OS.
このように yy と p の組み合わせで、直前にコピーした行をすぐ下に複製できます。
:e コマンドの役割
Vimで `:e ファイル名` を実行すると、現在のバッファで別のファイルを開き直すことができます。すでに Vim を起動していて別ファイルを編集したいときに有効です。
- `vim sample.txt` のように最初からファイルを指定して開いた場合は、改めて `:e`を実行する必要はありません。
- 一度 Vim を開いた状態で別のファイルに切り替えたい場合には `:e` を使います。
:e other.txt
【出力例:】
new file
このように、まだ存在しないファイル名を指定すれば空のバッファとして開かれ、保存すれば新規ファイルとして作成されます。
レジスタの活用
Vimではコピーした内容はレジスタに保存されます。特定のレジスタにコピーしておけば、後で呼び出してペーストすることができます。
例えば2行目をコピーして "a レジスタに保存し、次に貼り付ける操作です。
"ayy
"ap
【出力例:】
Linix is popular.
Many engineers use Linix for study.
Many engineers use Linix for study. 👈 aレジスタをペースト
Linix is often compared with other OS.
レジスタを活用すると、複数のコピー内容を使い分けることが可能になります。
レジスタの活用
Vimのレジスタはコピーした内容を一時的に保存しておく「引き出し」のような仕組みです。
yy でコピーすると無名レジスタに保存され、p で呼び出せます。また、"a のように名前を付ければ、特定のレジスタに保存できます。
例えば2行目を "a レジスタに保存し、同じレジスタから貼り付ける場合は次のようになります。
"ayy
"ap
【出力例:】
Linix is popular.
Many engineers use Linix for study.
Many engineers use Linix for study.
Linix is often compared with other OS.
このように、名前付きレジスタを使えば複数のコピーを使い分けられるため、長い文章の編集や定型文の挿入に便利です。
ただし初心者にとってはとっつきにくい概念なので、最初は深く考えず、何度も試しながら自然に覚えていくのが一番の近道です。
ビジュアルモードでのコピーと貼り付け
特定の単語だけをコピーしたい場合には、ビジュアルモードを使うと便利です。
例えば3行目の「Linix is(2単語)」をコピーして貼り付ける手順を見ていきます。
vwwy
p
ここで使ったキー操作には以下の意味があります。
「vwwy」コマンドの分解
- v : ビジュアルモードに入る(範囲選択の開始)
- w : 単語単位でカーソルを移動する
- w : さらに次の単語の末尾まで移動する
- y : 選択範囲をコピー(yank)する
つまり、最初の v で「L」の位置から選択を始め、w → w で「Linix is」全体を選択し、y でコピーする動作になります。
その後に p を押すと、カーソル位置の直後に「Linix」が挿入されます。
【出力例:】
Linix is popular.
Many engineers use Linix for study.
Linix Linix is often compared with other OS.
このように操作を分解して説明することで、「なぜ Linux のみがコピーされるのか」が明確になります。
下行へペーストしたい時
ビジュアルモードでコピーした文字列は、そのまま p を押すとカーソル位置の直後に貼り付けられてしまいます。
これでは行の途中に挿入され、思った通りに下の行へ独立して配置できません。
下の行にきれいに貼り付けたい場合は、新しい行を作ってからペーストする手順が必要です。
vwwy
o
Esc
p
【出力例:】
Linix is popular.
Many engineers use Linix for study.
Linix is often compared with other OS.
Linix is
この流れにより、選択した「Linix is」をコピーして、新しい行を開いたうえでペーストできるため、編集後の見やすさや管理のしやすさが向上します。
通常モードのコマンド一覧
通常モードではコマンド入力だけでコピーや貼り付けを行います。範囲を数値で指定できるため、連続行を効率的に扱えるのが特徴です。
コマンド | 意味 | 具体例 |
---|---|---|
yy | カーソル行をコピー | 2行目にカーソル → yy → 2行目をコピー |
2yy | カーソル行から2行コピー | 2行目にカーソル → 2yy → 2〜3行目をコピー |
"ay | aレジスタにコピー | 選択範囲 → "ay → aレジスタに保存 |
"ap | aレジスタの内容を貼り付け | "ay2yy後 → "ap で保存済み行を貼り付け |
p | コピー内容をカーソル位置の下へ貼り付け | yy後にp → コピーした行を次の行に挿入 |
ビジュアルモードのコマンド一覧
ビジュアルモードでは範囲を選択してコピー・貼り付けを行います。マウス感覚に近い操作が可能で、部分文字列の編集に便利です。
コマンド | 意味 | 具体例 |
---|---|---|
v | 文字単位で範囲選択開始 | v → hjklで範囲指定 → yでコピー |
V | 行単位で範囲選択開始 | V → 上下に移動して範囲指定 → yでコピー |
Ctrl+v | 矩形選択(ビジュアルブロック) | Ctrl+v → 縦方向に範囲 → yでコピー |
y | 選択範囲をコピー | vで範囲選択 → yでコピー |
p | 選択範囲の下に貼り付け | コピー後に移動 → pで貼り付け |
活用・応用のポイント
Vimの基本操作を押さえた後は、効率的に作業を進めるための応用テクニックを身につけることが重要です。
特に検索と置換の組み合わせや、レジスタを使った複数コピー操作は実務で役立ちます。
ここで紹介する方法を覚えることで、大量のテキストや複雑な編集作業でも短時間で処理できるようになります。
検索と置換を組み合わせた効率化
Vimでは検索と置換を組み合わせることで、設定ファイルやコードの一括修正を効率的に行えます。
例えば、ファイル全体で「Linux」を「Unix」に置換する場合を考えます。
【置換前(sample.txt)】
1 Vim is useful.
2 Linux is popular.
3 Many engineers use Linux.
コマンド実行:
:%s/Linux/Unix/g
【置換後】
1 Vim is useful.
2 Unix is popular.
3 Many engineers use Unix.
このようにファイル全体を対象にすることで、1行ごとに修正する手間を省けます。
誤記や環境依存の修正をまとめて行える点が大きなメリットです。
レジスタを活用した複数コピー操作
通常のコピーでは最後にコピーした内容だけが保持されますが、Vimではレジスタを活用することで複数のコピー内容を同時に保存し、必要に応じて使い分けることができます。
レジスタは「コピー専用の箱」のようなイメージです。異なる文字列を複数コピーしても、レジスタを指定することで失わずに貼り付けられます。
【コピー前(sample.txt)】
1 Vim is useful.
2 Linux is popular.
3 Many engineers use Linux.
4 Open source is powerful.
【操作例: 2つのレジスタにコピー】
"ay2yy (2行目と3行目をコピーしてaレジスタに保存)
"byy (4行目をコピーしてbレジスタに保存)
【aレジスタを3行目の下へ貼り付け】
:3
"ap
【貼り付け後】
1 Vim is useful.
2 Linux is popular.
3 Many engineers use Linux.
Linux is popular.
Many engineers use Linux.
4 Open source is powerful.
【bレジスタを末尾へ貼り付け】
:$
"bp
【貼り付け後】
1 Vim is useful.
2 Linux is popular.
3 Many engineers use Linux.
Linux is popular.
Many engineers use Linux.
4 Open source is powerful.
Open source is powerful.
このようにレジスタを使えば、複数のコピー内容を失わずに保持し、必要な場所へ自由に貼り付けられます。「コピーした内容が上書きされて消える」といった失敗を防げるのが大きな利点です。
"ay2yy の内訳
"ay2yyは複雑に見えますが、1つずつ分解すると理解しやすくなります。
ay2yyの内訳
- `"a` … コピー先のレジスタを「a」と指定します。ここで「aレジスタ」という専用の箱を選んでいるイメージです。
- `y` … コピー(yank)コマンドの開始を意味します。「コピーするよ」という指示です。
- `2y` … 「2行分をコピーせよ」という範囲指定になります。つまりカーソル行を含めて2行分が対象になります。
そのため、"ay2yy 全体では「カーソル行から2行分をコピーして、それをaレジスタに保存する」という意味になります。
トラブルと対処法
Vimを使っていると、コピーや置換が思った通りに動作しないことがあります。
ここでは代表的なつまずきと対処方法を整理します。
コピーや貼り付けが意図通りに動作しない場合
コピーと貼り付けは、通常モードとビジュアルモードで挙動が異なります。
特に初心者は「コピーしたのに貼り付けができない」というトラブルに直面しがちです。
正しく動かすためには「元のテキスト」「コピーした行や範囲」「貼り付ける位置」を明確に意識することが重要です。
【元のファイル(sample.txt)】
1 Vim is useful.
2 Linux is popular.
3 Many engineers use Linux.
【操作例(2行目をコピー→3行目の下に貼り付け)】
- カーソルを2行目に移動
2G
- 2行目をコピー
yy
- カーソルを3行目に移動
3G
- コピーした内容を3行目の下に貼り付け
p
【出力例】
1 Vim is useful.
2 Linux is popular.
3 Many engineers use Linux.
4 Linux is popular.
このように貼り付け位置はカーソルのある行に依存します。
意図通りに動かない場合はカーソルがどこにあるのかを必ず確認しましょう。
検索や置換で正しくマッチしない場合
検索や置換でうまくマッチしない原因は、指定範囲やカーソル位置の誤解にあります。
例えばファイル全体ではなく、カーソル行だけが置換対象になってしまうケースがあります。
【置換前(sample.txt)】
1 Linux is stable.
2 Linux is popular.
3 Linux is widely used.
カーソルが2行目にある状態で次を実行:
:s/Linux/Unix/g
【置換後(2行目のみ置換される)】
1 Linux is stable.
2 Unix is popular.
3 Linux is widely used.
ファイル全体を対象にするには、次のように範囲を明示します。
:%s/Linux/Unix/g
【置換後(全行が対象になる)】
1 Unix is stable.
2 Unix is popular.
3 Unix is widely used.
このように「どの範囲が置換対象か」を理解しないと、意図しない編集結果になりやすいです。
まとめと次のステップ
ここまでVimにおける検索、置換、コピー、ペーストの操作を体系的に解説しました。
これらは一見シンプルに思えても、使いこなすと日常的な編集作業の効率を大きく向上させます。
特に置換では誤字の修正や一括編集が素早く行え、コピーとペーストではレジスタやビジュアルモードを組み合わせることで作業の幅が広がります。こ
れらの基礎を押さえておけば、複雑なテキスト編集でも迷わず対応できるようになります。
記事の要点整理と関連操作への誘導
今回学んだポイントを整理すると以下の通りです。
- 検索は「/」や「?」を使って効率よく移動できる。
- 置換は「:s/検索文字列/置換文字列/」の形式で行い、全体や範囲指定も可能。
- コピーは「yy」「2yy」で行単位を扱え、レジスタを指定することで複数のコピーを保持できる。
- ペーストは「p」「P」でカーソル位置を基準に動作し、意図した場所へ正しく貼り付けるにはカーソル位置の確認が重要。
- ビジュアルモードを使うと直感的に範囲を選択し、柔軟なコピーや貼り付けが可能になる。
この知識を踏まえ、次のステップとして「ビジュアルモードの詳細な活用」や「複数ファイル編集とウィンドウ分割」などに進むと、さらに実務で役立つスキルが身につきます。
記事を段階的に読み進めることで、Vimを日常業務で使いこなせるレベルへと着実に近づけます。
🟢 Vimの基礎知識シリーズは段階的に進められる構成になっており、入門から実践、応用、カスタマイズまで体系的に学べます。
次のおすすめ記事
実践環境を整える
ここまで学んだ知識を実際に試すには、Linuxを動かす環境が必要です。手軽に始めるならVPSを利用するのがおすすめです。
→ VPS徹底比較!ConoHa・さくら・Xserverの選び方
VPSを利用してLinux環境を準備したら、実際の設定は下記の記事が参考になります。
→ VPSに開発環境を自動構築する方法|Apache+Tomcat+PostgreSQL