現在エンジニアを目指して学習中です。
これまであまり触れてこなかったターミナルやvimに触れているなかで
エラーが出たので備忘録です。
前提
現在、自分のMacにMAMPを入れて開発をしています。
そのMAMP内のPHPをターミナルで使えるようにするために
パスを通そうとした際に発生したエラーです。
↓実行しようとしたコマンド
vim ~/.bash_profile
こんなエラーが発生しました。
E325: ATTENTION
Found a swap file by the name "~/.bash_profile.swp"
owned by: hoge dated: 木 12 01 11:14:23 2022
file name: ~hoge/.bash_profile
modified: YES
user name: hoge host name: hoge-mac.lan
process ID: 5432
While opening file "/Users/hoge/.bash_profile"
CANNOT BE FOUND
(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use ":recover" or "vim -r /Users/hoge/.bash_pr
ofile"
to recover the changes (see ":help recovery").
If you did this already, delete the swap file "/Users/hoge/.bash_pr
ofile.swp"
to avoid this message.
Swap file "~/.bash_profile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
swap fileが見つかり、それが問題らしい。
そもそもswap fileとは
参考記事を引用します
.swpファイルはスワップファイルと呼ばれています。
スワップファイルはアプリケーションのクラッシュに備えて、 vimエディタでの編集開始時に作成され、編集後に削除される編集情報の記録ファイルです。
スワップファイルを使用していれば、vimエディタがシステムエラーで強制終了しても、 保存前のデータが失われずに済みことがあります。
- vimエディタで編集を始めると勝手に作成されるバックアップファイル
- swap fileが存在しているということは、以下のどちらか
- 同時に同じファイルが編集されている
- 以前編集した際に保存しないまま終了した
ということを抑えておけば良さそう。
今回の私のケースは、「2.以前編集した際に保存しないまま終了した」に該当。
エラーの対処法
このページに詳しくまとまっていました。
swapファイルが見つかった場合にどのように対処すべきか(クラッシュからのリカバリー)
私の場合、phpのパスを通すコマンドをやり直すだけだったので、
d
を入力してswap fileを削除しました。
すると、vimエディタが編集前のまっさらな状態で復活。解決です。
どうすればよかったのか
vimエディタでの編集を終了する際のコマンドがこちら
// 保存して終了
:wq
// 保存ずみのファイルからとりあえず抜ける
:q
// 保存しないで終了
:q!
参考