過去問ドリル

LinuCレベル1 GNUとUnixのコマンド 問30

GNUとUnixのコマンド/エディタを使った基本的なファイル編集の実行

viでファイルを編集中に、保存していない変更をすべて取り消し、最後に保存した状態のファイルを開き直して編集を続けたい。コマンドモードで入力するコマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)

正解:C

解説

:e! は、現在の変更を破棄して、編集中のファイルをディスクから読み込み直すコマンドです。エディタは終了しないため、最後に保存した状態からそのまま編集を続けられます。:q! も変更を破棄しますが、エディタ自体を終了します。:w! は強制的に上書き保存するコマンド、ZZ は変更を保存して終了するコマンドで、:wq とほぼ同じ働きです。

選択肢ごとの解説

  • A誤り。:w! は変更を強制的に上書き保存するコマンドで、変更を取り消すどころか保存してしまいます。
  • B誤り。:q! は変更を保存せずに破棄しますが、エディタそのものを終了するため、編集を続けられません。
  • C正しい。:e! は未保存の変更を破棄してファイルを読み込み直し、最後に保存した状態から編集を続けられます。
  • D誤り。ZZ は変更を保存してエディタを終了するコマンドで、変更の取り消しにはなりません。
LinuCレベル1の問題を演習モードで解く