Vim では書き込みと終了は別の操作です。Ex コマンドを入力する前に Esc でノーマルモードへ戻り、:、コマンドの順に入力して Enter を押します。書き込みが成功したと思い込まず、Vim の状態またはエラーメッセージを読んでください。
高度なテキスト操作 · レッスン 8
Vim の保存と終了
Vim のバッファー変更を書き込む、終了する、別名で保存する、意図的に破棄する方法を学びます。
現在のバッファーを書き込む
:w を使うと、ウィンドウを閉じず、現在のバッファーを関連付けられたファイルへ書き込みます。
:w
バッファーにファイル名がない、ディレクトリへ書き込めない、ファイルシステムが満杯であるなど、書き込みを妨げる条件があると失敗します。Vim が報告するメッセージを確認してください。
:w copy.txt は、現在のバッファー名を維持したまま内容を別のパスへ書き込みます。バッファーにも新しいパス名を採用させる場合は :saveas copy.txt を使います。
終了せず、現在のバッファーを関連付けられたファイルへ書き込む Vim コマンドはどれですか?
変更のないバッファーを終了する
保存していないバッファー変更を破棄することにならない場合、:q で現在のウィンドウを閉じます。
:q
現在のバッファーが変更済みで、その変更が失われる場合、通常 Vim は処理を拒否して警告を報告します。この安全策によって、書き込むかどうかを再検討できます。
保存していない変更を失わない場合に、現在の Vim ウィンドウを終了するコマンドはどれですか?
保存していない変更を破棄する
現在のウィンドウを閉じ、終了を妨げる変更を意図的に破棄する場合にだけ :q! を使います。
:q!
感嘆符は、保存していない変更に対する警告を上書きします。そのバッファー変更は書き込まれないため、Enter を押す前に本当に不要か確認してください。
現在のバッファーに、意図的に保存したくない変更があります。現在のウィンドウを終了し、その変更を破棄するコマンドはどれですか?
書き込みと終了を一緒に行う
バッファーを書き込み、成功後に現在のウィンドウを閉じる場合は :wq を使います。
:wq
書き込みに失敗すると、Vim は要求された終了を完了しません。データがディスクへ書かれたと思い込まず、エラーを解決してください。
現在のバッファーを書き込み、成功した場合に現在のウィンドウを終了するコマンドはどれですか?
`:x` と `ZZ` を使う
:x はバッファーが変更済みの場合だけ書き込み、その後終了します。ノーマルモードでは大文字の ZZ が、同じ「変更済みなら書き込んで終了」の動作を行います。
:x
ZZ
これは、バッファーが未変更でも書き込みを要求する :wq とはわずかに異なります。大文字の ZQ は、:q! と同様に、書き込まず終了するノーマルモードのコマンドです。
バッファーが変更済みの場合だけ書き込み、その後終了するノーマルモードのコマンドはどれですか?
複数のウィンドウやバッファーが関わる場合、コマンドによっては現在のウィンドウだけを閉じます。:qa、:wqa、:qa! などは全ウィンドウに作用しますが、全ウィンドウを強制終了するコマンドの前に、変更済みバッファーをすべて確認してください。
使い捨てのファイルで書き込みと終了を練習するには、次のハンズオンラボを利用してください。
- **Vim と Nano で Linux のテキストファイルを編集する**:Vim と Nano でファイルの作成、編集、保存、移動を練習し、保存と終了を含む Vim の基本操作を身に付けます。
レッスン完了
Vim の保存と終了 を完了しました
これで、保存していないデータへの意図に合う Vim の終了コマンドを選べるようになりました。
:wで終了せずに書き込む。変更を失わない場合は
:qで安全に終了する。:q!で意図的に変更を破棄する。:wqで書き込んで終了する。変更済みの場合だけ書き込むには
:xまたはZZを使う。