を、Vimはバックアップについては何も知りません。それはバックアップシステムは非常に簡単です - ファイルを書く。復元するには、手動で行う必要があります。
ただし、復元を簡単にするために、バックアップにさらに情報を追加することができます。
理想的には、backupdir
は、ファイルのパスを拡張し、%
で/
を交換することを強制するために//
末尾称えるでしょう。例えば/tmp/foo.rb
はバックアップファイル `tmp%foo.rb 'になります。
は//
をとり行うundo
と*.swp
ディレクトリ設定のための:help undodir
と:help directory
参照してください。
しかし、私たちはこれを偽造することができます!
" Prevent backups from overwriting each other. The naming is weird,
" since I'm using the 'backupext' variable to append the path.
" So the file '/home/docwhat/.vimrc' becomes '.vimrc%home%docwhat~'
au BufWritePre * let &backupext ='@'.substitute(substitute(substitute(expand('%:p:h'), '/', '%', 'g'), '\', '%', 'g'), ':', '', 'g').'~'
バックアップファイルはfilename-then-directoryを読み取りますが、動作し、十分にユニークである必要があります。
例:.vimrc%home%docwhat~
あなたは分のバックアップによって分が欲しかったので、あなたは、あまり仕事を失う場合は、ファイル名にタイムスタンプを付加することができ/home/docwhat/.vimrc
のバックアップのとおりです。
au BufWritePre * let &backupext = substitute(expand('%:p:h'), '/', '%', 'g') . '%' . strftime('%FT%T') . '~'
しかし、私は」 dこのディレクトリを定期的にクリーニングするようにcronジョブを設定することをお勧めします。あなたが私の多くのファイルを編集すると、このファイルはすぐに巨大になります。
BufWritePre
フックで書く前に、巧妙なことをしてbackupdir
を変更することもできますが、vimでその巧みさが私を超えています(現時点では)。
チャオ!
実際、私を噛ませるためにサイドの質問が戻ってきたようです。バックアップの1つが他のものを上書きしてしまったので、/path/two/file.html ... sighというレコードはありません。 – Tron
ファイル〜/ .viminfoを読んで何かを見つけることができます。 – taro