第4回 vi 入門 | 保存・終了の基本コマンドをマスターする|UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

vi 入門 第4回 | 保存・終了の基本コマンドをマスターする|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! で強制終了する

この使い分けが分かると、終了まわりはかなり落ち着いて見えてきます。

まずは小さく試してみよう

次の流れを、ターミナルで実際に試してみましょう。

  1. vi memo.txt と入力して Enter を押す
  2. i を押して入力モードに入り、1行だけ文字を書く
  3. Esc を押してコマンドモードに戻る
  4. :w と入力して Enter を押す(画面下部に保存結果が表示される)
  5. 続けてもう1行書いて Esc を押す
  6. :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 の全体像」もあわせてどうぞ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

目次