VIM(gvim/macvim)は、保存されていない/名前のないバッファのスワップファイルをどこに保存しますか?(そうする場合)。
背景: MacBookがジュース切れになったときに、名前のない/保存されていないMacVimバッファでメモを取っていました。どこからともなく電源が切れました(通常のようにスリープ/休止状態になりませんでした)。
質問:保存されていない作業がスワップ(.swp)に保存されている可能性があるかどうか誰かが知っていますか?ファイルなど、それは回復できますか?
システムの詳細:特に、これはMac OS X 10.5.8でMacVimを使用して発生しました(ただし、他のバージョンでのリカバリのヒントの可能性があります)も興味があります)。 MacVimを再起動していません。再起動するとクリーンアッププロセスが開始される場合があるためです。
Vimを起動して試してください:
:recover <filename>
ファイルに名前がなかった場合は、次のようにします。
:recover
それはあなたの最善の策です。スワップファイルとリカバリの詳細については、以下を参照してください。
:help usr_11
スワップファイルについては、通常、編集中のファイルと同じディレクトリに保存されますが、。最初を追加して非表示にし、最後に.swpを追加しましたが、次のような方法で別の場所に移動することができます。
:set directory=~/vimswap
または類似。
見る:
:help swap
すべての詳細について。
ただし、vimスワップファイルは編集されたバッファと同じではないので、リカバリのために何ができるかを必ずそこに読んでください。
[〜#〜] edit [〜#〜]:質問に答えるコメント:
[…]現在の作業ディレクトリ、〜/ tmp、/ var/tmp、/ tmpでスワップファイルを探しているようです。私の場合、常に現在の作業ディレクトリが設定されており、そこに保存されます。 – dsclementsen 10月5日10時1分42秒
また、vim -rコマンドライン引数も確認してください。これにより、見つかったすべてのスワップファイルとその場所が出力されます。それに加えて、日付/変更済み/ユーザー名/ etc ...– Neg_EV Oct 5 '10 at 13:49などの多くの追加情報があります。
Windows 10で作業していますが、:recover
でスワップファイルが見つかりませんでした。 vim -r
は、_。swpという名前の最後の編集セッションからのスワップファイルもリストしました(これも保存されていません)。 :recover _
で復旧できました。
答えは、あらゆる場所にあります。トリックは正しいものを見つけることです。一部は/ tmpディレクトリにありますが、それらの多くはホームディレクトリのどこかにあります。
これを行うにはもっと効率的な方法があるかもしれませんが、(MacBookで)名前のないファイルを紛失した場合、次の方法でうまくいきました。
ホームディレクトリで、バックアップファイルを検索します(数秒かかりますが、おそらくよりスマートにすることができます)。
find ./ -name ".s*" > findVimBackups.txt
ファイルを開く:
vim findVimBackups.txt
名前のないファイルのバックアップ用ではないファイル名を削除します。
:g!/\/\.s..$/d
:g/svn/d
名前のないバックアップファイルの場所のリストが表示されます。これらの各ディレクトリで、今日のファイルが見つかるまで次のコマンドを実行します。
ls -ltra <directory>
正しいディレクトリにcdしてvimを開き、:recoverと入力して正しいバックアップを選択します。
最終的には作業ディレクトリ:pwd
に移動するようです。これは、vimを開いた場所、または:cd
などを使用して設定した場所です。
名前のないバッファのスワップファイルは、ファイル名なしでそこにダンプされるように見えるので、.swp .swn .swoなどになります。何かを回復しようとしたときではなく、hg ignoreファイルが十分にカバーしていないときにこれを発見しました異なるサフィックス!
名前が変更されていない無数のバッファがたくさんあることが原因である可能性があり、これらのバッファを削除するとミステリーファイルが消えた