
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を使う大きな魅力のひとつに、複数のファイルを同時に編集できる柔軟性があります。
さらにウィンドウ分割を活用することで、複数のテキストを並べて確認しながら効率的に作業を進めることが可能です。
単一ファイルを順番に開き直す方法では発生しがちな見落としや操作の手間を削減でき、特に設定ファイルやログ解析などの場面で大きなメリットを発揮します。
なお、これから紹介する実行例はすべて以下のサンプルファイルを前提として説明していきます。
[ file1.txt ]
file1.txt
Linux is a powerful operating system.
Many engineers use Linux for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning Linux improves problem-solving skills.
[ file2.txt ]
file2.txt
Linux is one of the most popular operating systems.
Developers rely on Linux for programming and server management.
It is also common in embedded devices and mobile systems.
Active communities contribute useful tutorials.
Studying Linux helps engineers grow their careers.
複数ファイルを同時に扱う利点
まず、複数ファイルを開くときの基本操作は以下の通りです。
vim file1.txt file2.txt
【出力例:】file1.txt の内容が画面に表示され、file2.txt は裏のバッファに読み込まれる
[ file1.txt ]
file1.txt
Linux is a powerful operating system.
Many engineers use Linux for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning Linux improves problem-solving skills.
"file1.txt" 5L, 240C
file1.txt が表示されている状態で、file2.txt に切り替えるには以下のように操作します。
:next
【出力例:】file2.txt の内容へ切り替わる
[ file2.txt ]
file2.txt
Linux is one of the most popular operating systems.
Developers rely on Linux for programming and server management.
It is also common in embedded devices and mobile systems.
Active communities contribute useful tutorials.
Studying Linux helps engineers grow their careers.
"file2.txt" 5L, 273B
file2.txt が表示されている状態で、file1.txt に再度切り替えるには以下のように操作します。
:prev
【出力例:】再び file1.txt の内容へ切り替わる
[ file1.txt ]
file1.txt
Linux is a powerful operating system.
Many engineers use Linux for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning Linux improves problem-solving skills.
"file1.txt" 5L, 240C
このように複数のファイルを一度に開いておけば、切り替えながら編集できるため「開き直す手間」が不要になります。
設定ファイルを参照しながらプログラムを編集するといった場面で大きな効率化につながります。
ウィンドウ分割で作業効率を高める場面
ウィンドウ分割は、複数のファイルを同時に表示できるため、バッファ切り替えよりも直感的に比較や編集が行えるのが大きな強みです。
特に設定ファイルやソースコードの差分確認では、行き来する時間を削減し、編集内容を誤るリスクを減らせます。
注意点として、Vim の分割操作は日本語の感覚と表現がずれる点に気をつける必要があります。一般的に「縦分割」と聞くと上下に分ける印象を持ちますが、Vim では「縦に線を引く」という意味で、結果は左右に分かれます。逆に「横分割」は横に線を引くため、結果は上下に分かれます。この仕様を理解しておかないと、操作時に混乱して思わぬ表示結果になることがあります。記事内で「上下に分ける」「左右に分ける」と具体的に書き分けると、読者が直感的に理解しやすくなります。
分割前の前提条件
分割コマンドを実行する前に、どちらかのファイルを開いておく必要があります。
ここでは file1.txt を開いた状態から操作を始めます。
vim file1.txt
【出力例:】
file1.txt
Linux is a powerful operating system.
Many engineers use Linux for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning Linux improves problem-solving skills.
"file1.txt" 5L, 240C
この状態で :vsplit や :split を実行することで、file2.txt を同時表示させます。
縦分割は縦線を引く操作(結果:左右表示)
縦方向に画面を分割して file2.txt を開くと、左右に並べて比較できます。まず現在の設定を確認します。
:set splitright?
【出力例:】
nosplitright
縦分割(:vsplit)は左右に並べます。デフォルト設定(nosplitright)の場合、新しく開く file2.txt が左、もともとの file1.txt が右に残ります。右側に file2.txt を置きたいときは設定を変更します。
:vsplit file2.txt
【出力例:】縦分割(縦に線を引く)

左側にfile1.txtを表示したい場合は、事前に以下を設定します。
:set splitbelow
【出力例:】
splitbelow
横分割は横線を引く操作(結果:上下表示)
横方向に画面を分割する場合は、上下にファイルを表示して比較できます。まず現在の設定を確認します。
:set splitbelow?
【出力例:】
nosplitbelow
この設定では、新しいウィンドウ(file2.txt)が左側に表示され、右側に file1.txt が残ります。
file1.txtを開いた状態で下記のコマンドを実行します。
:split file2.txt
【出力例:】横分割(横に線を引く)

上にfile1を表示したい場合は、事前に以下を設定します。
:set splitbelow
【出力例:】
splitbelow
ウィンドウ間の移動操作
分割した状態では、それぞれのウィンドウ間を移動しながら編集します。
以下の操作で直感的に切り替えが可能です。
Ctrl-w h
【出力例:】左側のウィンドウに移動する。
Ctrl-w l
【出力例:】右側のウィンドウに移動する。
Ctrl-w j
【出力例:】下側のウィンドウに移動する。
Ctrl-w k
【出力例:】上側のウィンドウに移動する。
作業効率の向上
このように分割表示を活用することで、複数ファイルの比較や修正を同時に進められます。
1つのファイルを見ながらもう一方を編集できるため、確認作業の負担が軽減され、作業ミスの防止やスピードアップにつながります。
基本操作の手順

Vimで複数ファイルを扱う場合、最初にどのようにファイルを開くか、どの方法で画面を分割するか、さらに分割後にどのように操作を切り替えるかを理解することが大切です。
これらを身につけることで、作業の効率が大きく向上します。
ここでは file1.txt と file2.txt を例に、基本操作の流れを整理して説明します。
[ file1.txt ]
file1.txt
Linux is a powerful operating system.
Many engineers use Linux for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning Linux improves problem-solving skills.
[ file2.txt ]
file2.txt
Linux is one of the most popular operating systems.
Developers rely on Linux for programming and server management.
It is also common in embedded devices and mobile systems.
Active communities contribute useful tutorials.
Studying Linux helps engineers grow their careers.
ファイルをまとめて開く方法
複数ファイルを扱う際に、最初からまとめて開いておくと後の作業がスムーズになります。
たとえば次のように2つのファイルを同時に指定します。
vim -O file1.txt file2.txt
【出力例:】

このコマンドでは自動的に縦分割され、左右に file1.txt と file2.txt が並びます。
ファイルの並び順
- vim -O file1.txt file2.txt → 左に file1.txt、右に file2.txt
- vim -O file2.txt file1.txt → 左に file2.txt、右に file1.txt
もし上下に分割したい場合は -o オプションを使用します。
vim -o file1.txt file2.txt
【出力例:】

この方法を使えば、分割コマンドを入力する手間を省き、すぐに比較作業に移ることができます。
横分割と縦分割の使い分け
上下に分けて確認したいときは横分割、左右に並べたいときは縦分割を選びます。
用途によって使い分けることで、スクロールやカーソル移動の無駄が減ります。
注意点として、Vim の分割操作は日本語の感覚と表現がずれる点に気をつける必要があります。一般的に「縦分割」と聞くと上下に分ける印象を持ちますが、Vim では「縦に線を引く」という意味で、結果は左右に分かれます。逆に「横分割」は横に線を引くため、結果は上下に分かれます。この仕様を理解しておかないと、操作時に混乱して思わぬ表示結果になることがあります。記事内で「上下に分ける」「左右に分ける」と具体的に書き分けると、読者が直感的に理解しやすくなります。
上下に並べたい場合は以下のように実行します。
:split file2.txt
【出力例:】
"file2.txt" 5L, 240C
左右に並べたい場合は以下を使います。
:vsplit file2.txt
【出力例:】
"file2.txt" 5L, 240C
このように分割方法を選択できることで、縦長のログを見比べたい場合や、ソースコードの差分確認をしたい場合など、状況に応じた最適な作業環境を作れます。
ウィンドウ間の移動とよく使うコマンド一覧
分割したウィンドウ間を自在に移動できることが、効率的な操作には欠かせません。特にカーソル移動やウィンドウサイズ調整を理解しておくと、比較作業や編集がスムーズに進みます。 ウィンドウ移動や調整に役立つコマンドを以下にまとめます。
| 操作 | コマンド | 効果 |
|---|---|---|
| 左のウィンドウへ移動 | Ctrl-w h | カーソルを左側に切り替える |
| 右のウィンドウへ移動 | Ctrl-w l | カーソルを右側に切り替える |
| 上のウィンドウへ移動 | Ctrl-w k | カーソルを上側に切り替える |
| 下のウィンドウへ移動 | Ctrl-w j | カーソルを下側に切り替える |
| 縦サイズを広げる | Ctrl-w + | 現在のウィンドウを上下に拡張 |
| 縦サイズを縮める | Ctrl-w - | 現在のウィンドウを上下に縮小 |
| 横サイズを広げる | Ctrl-w > | 現在のウィンドウを左右に拡張 |
| 横サイズを縮める | Ctrl-w < | 現在のウィンドウを左右に縮小 |
これらを覚えておくことで、ファイルの比較や編集が直感的にでき、必要に応じてウィンドウサイズを即座に調整できるようになります。結果として、表示のストレスが減り、編集精度の向上にもつながります。
効率化と応用のテクニック

Vimを使う最大の魅力は、基本操作に慣れた後に効率化の工夫を積み重ねられる点にあります。
単純な編集にとどまらず、複数ファイル編集や分割表示といった応用テクニックを組み合わせることで、作業時間を大幅に短縮できます。
ここでは、実務で役立つ具体的な操作例を紹介します。
複数ファイル編集と検索・置換の組み合わせ
複数のファイルを同時に扱う場面では、共通する単語や設定値を一括で修正したいケースが多くあります。
そのためには、まず対象ファイルを Vim に読み込んでおく必要があります。
vim file1.txt file2.txt
【出力例:】
このように起動することで、file1.txt と file2.txt の両方がバッファに登録されます。
ここから引数リストを確認すると、次のように表示されます。
:args
【出力例:】現在表示されているファイルが[]で表示される
[ file1.txt ] file2.txt
ここで、両方のファイルに含まれる「Linux」を一括で「UNIX」に置換するには以下を実行します。
:argdo %s/Linux/UNIX/g | update
【出力例:】
"file1.txt" 6 行, 237 bytes
"file1.txt" 6L, 234B 書込み
"file2.txt" 6 行, 283 bytes
"file2.txt" 6L, 280B 書込み
続けるにはENTERを押すかコマンドを入力してください
file1.txt と file2.txt のすべての「Linux」が「UNIX」に置き換えられ、それぞれのファイルが保存されます。

【コマンド実行後:】 強調表示の文字列が置換されている
file1.txt
UNIX is a powerful operating system.
Many engineers use UNIX for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning UNIX improves problem-solving skills.
file2.txt
UNIX is one of the most popular operating systems.
Developers rely on UNIX for programming and server management.
It is also common in embedded devices and mobile systems.
Active communities contribute useful tutorials.
Studying UNIX helps engineers grow their careers.
この方法のメリットは、一度の操作で複数ファイルを一括編集できる点にあります。
例えば設定ファイルやドキュメントの表記統一など、手作業では時間がかかる処理を数秒で完了できるのです。
ビジュアルモードと分割操作の活用例
ビジュアルモードとウィンドウ分割を組み合わせることで、ファイル比較や部分的なコピーが効率的に行えます。
例えば、file1.txt を左に、file2.txt を右に分割して開き、file1.txt の一部をコピーして file2.txt に貼り付けたい場合の流れです。
vim -O file1.txt file2.txt
【出力例:】

分割コピーペーストのテクニック
- 画面分割 file1.txt と file2.txt を縦分割で開きます。
vim -O file1.txt file2.txt
- 対象範囲指定 v を押してビジュアルモードに入り、カーソルを動かしてfile1.txt 内の "Linux is a powerful operating system."を選択します。

- y を押すと、選択範囲がヤンク(コピー)されます。
y
- 分割画面移動 Ctrl-w l を押すと、右側の file2.txt にカーソルが移動します。

- 貼り付け実行 貼り付けたい位置にカーソルを移動し、「p」 or 「Pを押します。
P
【出力例:】
file2.txt のカーソル位置に、先ほどコピーした "Linux is a powerful operating system." が貼り付けられる。
貼り付け位置に関する注意
Vim での貼り付けは、コピーした内容が「行全体」か「文字列の一部」かによって結果が変わります。特に分割画面で別ファイルにコピーを持ち込むときは、貼り付け位置を意識しないと意図しない改行が発生することがあります。
行全体をコピーした場合、p はカーソル行の下に新しい行として貼り付けます。そのため、貼り付けたい行の先頭で p を押すと、コピーした内容が一行下に挿入され、不要な改行が入ったように見えてしまいます。
このようなときは、カーソルを貼り付けたい行の先頭に合わせて P を使うと、コピーした内容がその行の直前に挿入されるため、余計な改行を避けられます。
部分的な文字列コピーの場合は、p でカーソル直後に挿入されるので問題ありません。状況に応じて p と P を使い分けることが、意図通りに貼り付けるための大切なポイントです。
つまずきやすいポイントと対処法

複数ファイルを同時に扱う操作や分割表示は便利ですが、その分トラブルも発生しやすくなります。
代表的なのは swap ファイルの生成や保存競合による編集内容の消失です。
これらの状況を理解しておくことで、作業を中断せずに安定して編集を進められます。
swapファイルが生成されたときの対応
Vim では、編集中に異常終了した場合などに自動で swap ファイルが生成されます。
これは「直前の編集内容を復元するための保険」です。
もし同じファイルを再度開いたときに swap ファイルが存在すると、次のようなメッセージが表示されます。
E325: ATTENTION
Found a swap file by the name ".file1.txt.swp"
この場合は、次の選択肢が提示されます。
| キー | 動作 |
|---|---|
| O | 読み取り専用で開く(Read-Only) |
| E | とにかく編集を続ける(Edit anyway) |
| R | 復元する(Recover) |
| Q | 終了する(Quit) |
| A | 中止する(Abort) |
| D | swap を削除する(Delete)※環境によって表示されない場合あり |
注意:swap ファイル警告画面で入力するのは、画面に表示された大文字キー(O, E, R, Q, A)です。小文字では受け付けられないため、必ず大文字をそのまま押してください。
保存競合や編集内容の消失を防ぐ工夫
複数ファイルを開いていると、どちらに最新の変更が入っているのか見失ったり、保存タイミングが重なって意図せず内容が失われることがあります。
こうしたトラブルを避けるためには、Vim のコマンドや設定を活用して管理を徹底することが大切です。
Vim を学ぶ上で、swap ファイルがどう生成され、どのように復旧操作が必要になるのかを実際に試してみることは大きな学びになります。ただし最近の Linux 環境では安全策が働いており、昔のように「:!kill -9 $$」を実行しても弾かれてしまいます。
そのため、以下のように工夫して swap ファイルをわざと作成する方法を紹介します。
保存競合を体験する手順
ile1.txt を Vim で開き、未保存の変更を残したまま終了せずに維持します。
vim file1.txt
【出力例:】
file1.txt
Linix is a powerful operating system.
Many engineers use Linix for development.
It is widely adopted in servers and cloud systems.
The community provides extensive documentation.
Learning Linix improves problem-solving skills.
その状態で下記を実行すると swap ファイルが発生し、競合の警告画面を体験できます。
:!vim file1.txt
【出力例:】
スワップファイル ".file1.txt.swp" が既にあります!
読込専用で開く([O])、とにかく編集する((E))、復活させる((R)) などが選択できます。
「:!」
Vimで「:!」を入力すると、編集中の状態を維持したまま外部コマンドを実行できます。
外部コマンド呼び出し
- :(コロン) ・Exコマンドを入力するための開始記号
- 保存(:w)、終了(:q)、検索置換(:s)など、Vim内部の操作を実行する
- Vim自体を制御するための指示に使われる
- !(エクスクラメーション)
- 外部コマンドを実行するために使う演算子
- 単体では使えず、通常は「:!コマンド」の形式で呼び出す
- シェルに命令を送り、その結果をVim画面に表示する(例: :!ls)
これはVimの中からシェルに命令を送り、その結果を画面に表示する仕組みです。ファイルを閉じずに環境操作や確認を行えるため、作業効率が大幅に向上します。
つまり「:」はVim内部を動かす命令の入り口で、「!」はそこからさらに外部の世界(シェルコマンド)を呼び出すための記号です。
例えば、現在のディレクトリ内のファイル一覧を確認したい場合は次のように入力します。
:!ls
【出力例:】
file1.txt
file2.txt
file3.txt
このように「:!」コマンドを使えば、Vimから離れることなく外部コマンドを呼び出して必要な情報を即座に確認できます。
Vimでスワップファイルが見つかったときの選択肢
Vimを使っていると、クラッシュや異常終了、あるいは別のプロセスで同じファイルを開いた場合に「スワップファイルが既にあります!」という警告が表示されることがあります。
このとき、Vimはユーザーにいくつかの選択肢を提示します。
重要なのは、この段階では通常のコマンド入力はできず、まず提示された選択肢を押して進める必要があるという点です。
[O] 読込専用で開く
ファイルを読み取り専用で開くモードです。編集はできませんが、安全に内容を確認することができます。
他の人や別のプロセスが同じファイルを編集中である可能性があるときに便利です。
誤って上書きするリスクを避けたい場合に選択します。
[E] とにかく編集する
スワップファイルが存在していても、強制的に編集を開始します。
すでに他の編集作業が進んでいた場合は競合が発生し、相手の作業内容を上書きしてしまう危険があります。
自分しか作業していないと確信できるとき以外は避けるべき選択肢です。
[R] 復活させる
スワップファイルを利用して、クラッシュや異常終了の際に保存できなかった編集内容を復旧します。
作業を救出したい場合にもっとも有効な選択肢であり、Vimがスワップファイルを残す本来の目的でもあります。
復旧後は内容を確認して保存し、通常編集へ移行します。
補足:環境によって表示されることがある選択肢
一部のVimビルドや配布パッケージでは、以下の選択肢が追加で表示される場合があります。
環境によって異なるため、出る/出ないに戸惑わないよう注意してください。
- [D] スワップファイルを削除して開く
既に別プロセスが動いていない「残骸」だと確信できる場合に使います。
安全のため、表示されたPIDが生存していないか確認してから選ぶのが基本です。 - [Q] 終了する
Vimを終了します。状況を整理してから開き直したいときに選択します。 - [A] 中止する
起動処理を取り消します。誤操作で開いてしまった場合や、とりあえず作業を止めたいときに使います。
スワップファイルが見つかったときは、まず提示された選択肢から自分の状況に応じて適切なものを選ぶ必要があります。
基本は「O=安全に確認」「E=強行編集」「R=復旧」と理解しておけば十分です。
加えて環境によって「D」「Q」「A」が出る場合もあり、それぞれ残骸削除・終了・中止と覚えておくと混乱しません。
まとめと次へのステップ
ここまで学んできた内容を振り返ると、Vimは単なるテキストエディタにとどまらず、効率的な開発環境として大きな可能性を持っていることが理解できます。
複数のファイルを自在に切り替えたり、画面を分割して同時編集できる操作は、一度慣れてしまえば作業のスピードと正確性を飛躍的に向上させます。
また、外部コマンドと連携する機能を使えば、わざわざVimを閉じることなくシステム上の作業を進められるため、開発フロー全体の効率化にも直結します。
ポイントは「エディタ内でできることを最大化する」という意識です。これによって移動や待機の無駄を排除し、集中力を保ちながら編集作業を継続できます。
今回学んだ知識は、日常的な修正から大規模なプロジェクトまで幅広く応用できる基盤となります。
次のステップでは、より複雑な外部コマンドの組み合わせや、自動化に向けたVimの設定活用に進むことで、さらに生産性を高められるでしょう。
複数ファイル編集と分割操作の要点整理
複数ファイルを同時に扱えることで、関連するコードや設定を行き来しながら編集する負担が大幅に減ります。
縦や横の分割表示を活用すれば比較作業も容易になり、作業効率が飛躍的に高まります。
外部コマンド連携に進むための準備
外部コマンドを呼び出せることは、Vimを作業環境の中心に据えるうえで大きな強みです。
まずは簡単なコマンド実行から始め、徐々に検索やファイル管理などを組み合わせて活用できるように準備していきましょう。
🟢 Vimの基礎知識シリーズは段階的に進められる構成になっており、入門から実践、応用、カスタマイズまで体系的に学べます。
次のおすすめ記事
実践環境を整える
ここまで学んだ知識を実際に試すには、Linuxを動かす環境が必要です。手軽に始めるならVPSを利用するのがおすすめです。
→ VPS徹底比較!ConoHa・さくら・Xserverの選び方
VPSを利用してLinux環境を準備したら、実際の設定は下記の記事が参考になります。
→ VPSに開発環境を自動構築する方法|Apache+Tomcat+PostgreSQL



