web-dev-qa-db-ja.com

どうすれば.swpファイルから元のファイルを復元できますか?

vicatを使用して.swpファイルを開こうとしましたが、ジャンクが表示されます。

60
zarna
vim -r .swp

これは回復モードに入り、より多くの情報を提供します。これがあなたの望んでいることだと思います。

.swX-ファイルは、保存されていないファイルとのセッションが強制終了/クラッシュ/何か他の問題が発生した場合に残されます。それらは、Vimセッションで未保存のバッファが開いている間も存在します。 vim -rこれらの一時ファイルを読み取り、コンテンツを再作成します。回復したら、通常どおり保存します。 :w newfilename

101

.swpを復元するために元のファイルを用意する必要はありません。ファイルが存在するかのように開くだけです。 vimは、拡張子が.swpのファイルを探し、それを回復することを提案します。

例えば。:

$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Rを押して回復し、ファイルを:wqするだけです

編集:.swpファイルには、ファイルに加えられた変更のみが含まれていることに注意してください(コメントを参照)。つまり、ファイルの最新のコピーをバックアップからフェッチし、vimを使用して最新の変更を復元する必要があります。ファイルのバックアップコピーがない場合は、本当にうまくいきません。

17

1スワップファイルを開く.file.swp in vim

2 :recoverはファイルを復元します

9
Sathyam

Vimを使用して元のファイルを開き、回復オプションを選択します。

Vegar WesterlundとHeptiteのコメントを読んだ後、vimが.swpファイルから復元するために元のファイル(またはバックアップ)が必要になるのはどの時点か知りたいと思いました。これが何をしたかです:

975行のファイルを開き、949行で編集しました(.swpファイル)、プロセスを強制終了し、元のファイルを削除しました。 $ vim Original_File .swpから回復するかどうか尋ねられました">はい。最初の68行と最後の34行(編集の上8行から始まる)だけが実際に回復されました。

次に、小さいファイルでテストを繰り返しました。20行から200行まで、.swpファイルには元の100%の内容が含まれていました。しかし、300行では、最初の68行と最後の18行(編集内容の2行上から始まる)のみが.swpに含まれていました。

結論として、vimは常にファイルの「ヘッダー」と「ボトム」を.swpファイルに保存することを知っておくとよいでしょう。たぶん、.swpに含める行数を制御する設定がありますか?

7
tuk0z