はじめてLinuxでviを触ったとき必ずわからなくなるのが、編集後の保存方法だ。
慣れるまでしばしかかるが、慣れてしまえばなんのことはない。コマンド操作ですぐに終わる。
このページではviの保存方法についてお伝えしよう。
viの終了方法
入門者がviを立ち上げてなんとか編集したはいいが「終了の仕方がわからない」という状態におちいることがよくある。
これはまぁLinux上で動くCUI前提のエディタではよくあることである。
なにはともあれ、終了の仕方を覚えよう。まずEscキーを何回か連打する。すると「ノーマルモード」起動した直後と同じ状態になるので、その状態で「:」を押してみよう。
すると「コマンドモード」に移行する、画面一番下の行に変化があるはずだ「:」となりコマンドをうけつけるようになる。その状態で「q」としてエンターを押してみよう。無編集の状態ならばvimが無事に終了するはずだ。
無編集の状態でvimを閉じる。
:q
もし設定ファイルをひらいて編集、それを保存したい場合は「:q」だけでは終了できない。コマンドモードから「:wq」とする。
viの保存はどうするのか?
:wq
としてみよう。上書き保存されるはずだ。おそらく、vimを設定ファイルのエディタとして使用するのであれば「:wq」が最も使用頻度の高い終了コマンドとなるだろう。
また変更内容を破棄して終了したい場合は
:q!
とする。
変更は適応されず、終了する。
また、単になにもファイルを指定せずにvimを開いた場合
$ vim
この場合ファイル名を別途に指定して保存する必要がある。その場合
:w <ファイル名>
とすると<ファイル名>で保存される。
その後に
:q
もしくは
:wq
とすれば不満のない動作をしてくれるはずだ。
「~」のついたファイルが残る、これはなに?
vimを使用していると、ファイルを編集し、保存終了すると同じディレクトリに、最後尾に「~」(チルダ)のついたファイルが存在することがわかる。
これはなにかというと単純にバックアップファイルである。一つまえ保存終了した状態のファイルが保存されている。なのでファイルを間違えた状態で保存してしまった場合「~」のついたファイルから復元することができる。
例えばtestfile.txtというファイルを編集して保存したとしてtestfile.txt~が生成される。testfile.txtを誤編集してしまった場合は
$ cp testfile.txt~ testfile.txt
などとすればファイルの内容を復元できるようになっている。
.swpファイルはなに?
.swpファイルはファイルの編集している最中に作成され、通常は編集後に自動削除されるファイルである。このファイルはvimが唐突にクラッシュしたときなどの為のバックアップファイルである。例えばtestfile.txtを編集している最中にvimが異常終了した場合は.testfile.txt.swpがファイルとして残ることになる。
.swpファイルが存在すると元データを開いたときに
1 2 3 |
スワップファイル ".testfile.swp" が既にあります! 読込専用で開く([O]), とにかく編集する((E)), 復活させる((R)), 削除する((D)), 終了する((Q)), 中止する((A)): |
上記の質問がなされるが結果から言うと復活させる((R))でおおかた問題ない。
正常に復元されていることを確認したら、とりあえず
:wq
としよう。
そしたら.testfile.swpを削除する。
$ rm .testfile.swp
これで.swpによる復元作業は終了だ。
まとめ
このページではviの保存と終了方法についてお伝えしてきた。viというよりもLinuxを使う上での基礎知識となる。一通り覚えておこう。
コメント