vim-users.jp

Hack #201: バックアップを作成する

Posted at 2011/02/19
このエントリーをはてなブックマークに追加

バックアップには 2 種類あります。 1 つは編集中のファイルのバックアップ、これをスワップファイルと呼びます。 もう 1 つは既に存在しているファイルを上書きする際に作成されるものです。

スワップファイル

スワップファイルを作成するには ‘swapfile’ をオンにします。 オフにするとスワップファイルは作成されなくなります。

スワップファイルは ‘directory’ で指定したディレクトリに作成されます。 全てのプラットフォームでの規定値は Unix の場合 ‘.,~/tmp,/var/tmp,/tmp’ と指定れているため、 カレントディレクトリ、つまり編集中のファイルと同じディレクトリに作成されます。

スワップファイルは ‘updatecount’ で指定している文字数を入力することで書き込まれます。 ‘updatecount’ を 0 に指定するとスワップファイルは作成されなくなります。

設定例

保存場所からカレントディレクトリを除き、~/tmp にして、更新の間隔を 500 文字にするには以下の様に指定します。

set swapfile
set directory-=.
set updatecount=500

バックアップ

同名のファイルを上書きする前にバックアップを取るには、’backup’ もしくは ‘writebackup’ をオンにします。

‘backup’ をオンにしておくと、上書きに成功した場合にもバックアップを残します。 ‘backup’ をオフにしておくと ‘writebackup’ をオンしておくと上書きが成功した場合はバックアップを破棄するようになります。 どちらもオフにした場合にはバックアップを取らなくなります。

バックアップ先を指定するには ‘backupdir’ を指定します。既定値ではカレントディレクトリにバックアップが作成されます。 ‘backupext’ を指定すると、バックアップファイル名の最後に指定した文字列を追加することが出来ます。 例えば、ファイル名の最後にタイムスタンプを追加するには、以下のように指定します。(HELP からの引用)

:au BufWritePre * let &bex = '-' . strftime("%Y%b%d%X") . '~'`

また、バックアップを作成しないファイル名のパターンを ‘backupskip’ に指定することが出来ます。

参照資料

Sixeight

もどる
blog comments powered by Disqus