VIM(gvim / macvim)は、未保存/名前のないバッファのスワップファイルをどこに保存しますか?


52

VIM(gvim / macvim)は、未保存/名前のないバッファのスワップファイルをどこに保存しますか?(もしそうなら)。

背景: MacBookがジュースを使い果たしてどこからでも電源が切れたとき、私は名前のない/保存されていないMacVimバッファーでメモをとっていました。

質問: 保存されていない作業がスワップ(.swp)ファイルなどに保存された可能性があり、それが回復される可能性があるかどうか、誰にもわかりませんか?

システムの詳細: 特に、Mac OS X 10.5.8でMacVimを使用してこれが発生しました(ただし、他のバージョンの回復のヒントも興味深いものです)。クリーンアッププロセスを開始する場合に備えて、MacVimをまだ再起動していません。


1
明確化:保存されていないということは、決して保存されていないということです。ファイルはCommand-T(:tabeと同等だと思います)を押して作成されました。つまり、新しいタブで名前のない新しいバッファーが開かれます。(私は通常だろう「:SAV somefilename」の後の段階で。
davur

関係ありません。私の答えへの追加を参照してください。
狂気

回答:


60

vimを起動して試してください:

:recover <filename>

ファイルに名前がなかった場合は、次のようにします。

:recover

それが最善の策です。スワップファイルと回復の詳細については、以下を参照してください。

:help usr_11

スワップファイルについては、通常、編集中のファイルと同じディレクトリに保存されますが、。非表示にするために先頭を追加し、末尾に.swpを追加しましたが、次のような方法で他の場所に移動することができます。

:set directory=~/vimswap

または類似。

見る:

:help swap

すべての詳細について。

ただし、vimスワップファイルは編集されたバッファと同じではないため、リカバリのために何ができるかを必ず読んでください。


編集:質問に答えるコメント:

[…]現在の作業ディレクトリである〜/ tmp、/ var / tmp、および/ tmpでスワップファイルを検索しているようで、私の場合は常に現在の作業ディレクトリが設定されており、そこに保存されています。-dsclementsen 10年5月10日1:42で

また、vim -rコマンドライン引数を必ずチェックアウトしてください。これにより、見つかったすべてのスワップファイルとその場所が出力されます。さらに、date / modified / username / etcなどの多くの追加情報があります...-Neg_EV 10年5月10日13:49


これは役に立ちません。保存されていないということは、決して保存されていないということです。意味:tabeまたは(Command + T)で新しいバッファーを開きました。したがって、保存されていない/名前のないバッファについて話しています。この種の保存されていない作業が保存されるデフォルトの場所はありますか?
ダヴール

3
:recoverファイル名なしで試してください。名前のないファイルを復元するためにテストしたところ、うまくいきました。とにかく、その特定のコマンドが役に立たなくても、それらのヘルプファイルを読むことは役立つかもしれません。
気難しい

1
私の知る限りではありません。新しいファイルの編集中に外部からvimを強制終了してテストしました。しかし、recover引数なしで実行した場合、古いセッションから選択することもできました。とにかく、unnmaedバッファの.swpファイルはおそらく/ tmpにありますが、set directory= <something>
派手な

2
また、vim -rコマンドライン引数を必ずチェックアウトしてください。これにより、見つかったすべてのスワップファイルとその場所が出力されます。addtionでは、それは、次のような余分な多くの情報を持っています日付/ /ユーザ名は/ etc ...修正
Neg_EV

1
コマンドを使用して:recover!、保存していないファイルを回復する必要がありました。

2

私はWindows 10で作業して:recoverいますが、スワップファイルが見つかりませんでした。vim -r_.swpという名前の最後の編集セッションのスワップファイルをリストしました(これも保存されません)。で回復できました:recover _


1

答えは、あちこちにあります。トリックは正しいものを見つけることです。いくつかは/ tmpディレクトリにありますが、多くはホームディレクトリの下にあります。

これを行うにはもっと効率的な方法があるかもしれませんが、名前のないファイルを失ったとき(MacBookの場合)は次のように機能しました。

ホームディレクトリで、バックアップファイルを検索します(数秒かかり、おそらくよりスマートにできます)。

find ./ -name ".s*" > findVimBackups.txt

ファイルを開く:

vim findVimBackups.txt

名前のないファイルのバックアップ用ではないファイル名を削除します。

:g!/\/\.s..$/d
:g/svn/d

名前のないバックアップファイルの場所のリストが表示されます。これらの各ディレクトリで、今日からファイルが見つかるまで以下を実行します。

ls -ltra <directory>

適切なディレクトリにcdし、vimを開いて:recoverと入力し、正しいバックアップを選択します。


0

彼らはあなたの作業ディレクトリに:pwd行き着くようですこれはあなたがvimを開いた場所、または代わりにあなたがそれを使用して:cdまたは同様に設定したかもしれません。

名前のないバッファのスワップファイルは、ファイル名なしでそこにダンプされるように見えるので、最終的に.swp .swn .swoなどになります。異なるサフィックス!

変更された名前のないバッファがたくさんあることが原因であり、これらのバッファを削除するとミステリーファイルが消えたと思います

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.