本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第4回 vi 入門 | 保存・終了の基本コマンドをマスターする|UNIX Cafe

vi 入門 | 第4回
迷わず終われる「vi 保存・終了」の基本
vi を使い始めたころ、「どうやって閉じるのか分からない」という経験をした人は少なくありません。保存と終了のコマンドを知っているだけで、vi への不安はかなり小さくなります。
今回のゴールは、保存するのか、保存せず終わるのかを落ち着いて選べるようになることです。コマンドの数は多くありません。ひとつずつ整理すれば、すぐに使いこなせるようになります。
動画で流れを先に見たい方は、UNIX Cafe の YouTube もあわせてどうぞ。記事と同じく、初心者向けのやさしい流れで vi の操作を確認できます。
📝 この記事で学べること
:wでファイルを保存する方法:qで終了する方法と、終了できない理由:wqで保存して終了する方法:q!で変更を破棄して強制終了する方法- 場面に応じた4つのコマンドの使い分け
保存とは、編集内容をファイルに書き込むこと
まず整理しておきたいのは、「保存」が何をしているかです。保存とは、画面の中で編集した内容をファイルへ書き込むことです。
文字を入力しただけでは、その内容はまだファイルに反映されていません。保存してはじめて、編集内容が確定します。これは vi に限った話ではありませんが、vi では保存と終了が別の操作として分かれているため、意識しやすくなっています。
保存・終了コマンドはすべて、コマンドモードで :(コロン)から始まります。入力モードにいる場合は、先に Esc でコマンドモードに戻ってから使いましょう。
:w でファイルを保存する
:w は、現在の編集内容をファイルに書き込むコマンドです。w は「write(書き込む)」の頭文字です。終了はせず、保存だけして編集を続けたいときに使います。
:w : 編集内容をファイルに保存する(終了しない):w を実行すると、画面の下部に次のような表示が出ます。
"memo.txt" 1L, 12B writtenこれは「memo.txt に1行・12バイトを書き込んだ」という意味です。この表示が出れば、保存が正常に完了しています。
💡 :w filename で別名保存できます
:w backup.txt のようにファイル名を続けると、現在の内容を別のファイル名で保存できます。元のファイルを残したまま別名で保存したいときに便利です。
:q で終了する
:q は、vi を終了してターミナルに戻るコマンドです。q は「quit(終了する)」の頭文字です。ただし、変更が残っている状態では :q だけでは終了できません。
:q : vi を終了する(未保存の変更がない場合のみ)未保存の変更があると、次のようなエラーメッセージが表示されます。
E37: No write since last change (add ! to override)これは壊れているわけではありません。「変更があるので保存してから終了するか、強制終了してください」という意味のメッセージです。このあと :wq か :q! を選びます。
:wq で保存して終了する
:wq は、保存と終了を一度に行うコマンドです。初心者が最もよく使う形で、「編集が終わったらこれ」と覚えておけば十分です。
:wq : 保存してから vi を終了する:w(保存)と :q(終了)を組み合わせたコマンドです。実行するとファイルに書き込まれ、そのままターミナルに戻ります。迷ったらまず :wq と考えてもよいくらい基本的な形です。
💡 ポイント::x でも保存して終了できます
:x も :wq と同じく保存して終了するコマンドです。違いは、:x は変更がない場合にファイルを書き込まない点です。タイムスタンプを不用意に更新したくないときに使われますが、最初は :wq だけ覚えれば十分です。
:q! で変更を破棄して強制終了する
:q! は、未保存の変更をすべて破棄してそのまま終了するコマンドです。!(エクスクラメーション)は「強制」を意味します。
:q! : 変更を保存せず、強制的に vi を終了する練習中に変な編集をしてしまったときや、途中で全部やり直したくなったときに便利です。「保存せずに抜けられる」と知っているだけで、試しに操作するときの不安がかなり小さくなります。
⚠ 注意::q! は変更がすべて消えます
:q! を実行すると、:w で保存していない変更はすべて失われます。「やっぱり保存すればよかった」と気づいたときでも取り戻せません。使う前に「本当に捨てていいか」を確認しましょう。
:q で閉じられないのはなぜか
:q と入力したのに閉じられないのは、壊れているからではありません。未保存の変更があるため、vi が「本当に終了していいですか」と止まっている状態です。
このときは、次のどちらかを選びます。
- 変更を残したい →
:wqで保存して終了する - 変更を捨ててよい →
:q!で強制終了する
この使い分けが分かると、終了まわりはかなり落ち着いて見えてきます。
まずは小さく試してみよう
次の流れを、ターミナルで実際に試してみましょう。
vi memo.txtと入力して Enter を押すiを押して入力モードに入り、1行だけ文字を書くEscを押してコマンドモードに戻る:wと入力して Enter を押す(画面下部に保存結果が表示される)- 続けてもう1行書いて
Escを押す :wqと入力して Enter を押し、保存して終了する
vi memo.txt # ファイルを開く
i # 入力モードへ
Hello, vi! # 何か書く
Esc # コマンドモードへ戻る
:w # 保存だけする
i # もう1行書くために入力モードへ
Good bye. # 追記する
Esc # コマンドモードへ戻る
:wq # 保存して終了するこの流れを一度体験すると、「保存」と「終了」が別の操作として自然に見えてきます。途中で嫌になったら :q! でいつでも抜け出せるので、気軽に試してみましょう。
4つのコマンドをまとめると
| コマンド | 動作 | よく使う場面 |
|---|---|---|
| :w | 保存(終了しない) | 編集途中でとりあえず保存したい |
| :q | 終了(変更がない場合のみ) | 何も変更していないファイルを閉じたい |
| :wq | 保存して終了 | 編集が終わったら基本これ |
| :q! | 変更を破棄して強制終了 | やり直したい・間違えた |
まとめ|残すか捨てるかで考えると整理しやすい
✔ この記事のまとめ
:wは保存のみ。編集を続けながら途中で保存したいときに使う:qは終了のみ。未保存の変更があると終了できない:wqは保存して終了。編集が終わったら基本これ:q!は変更を破棄して強制終了。緊急の出口として覚えておく:qで閉じられないときは、:wqか:q!で対処できる
保存と終了のコマンドは、数は少なく、考え方はシンプルです。「残すなら :wq、捨てるなら :q!」という整理さえできれば、vi の出口まわりで迷わなくなります。
次回予告
次は、「vi undo・redo」の使い方を見ていきます。操作を間違えても u で取り消せると知っているだけで、vi をずっと気軽に触れるようになります。
あわせて読みたい
もう少し全体像を見ながら復習したい方は、「黒板で整理する vi の全体像」もあわせてどうぞ。










