6

vim と netrw プラグインを使用して、多くのファイルをリモートで操作しています。を変更して、タイムスタンプ付きのバックアップも保持します&backupext(ドキュメントに記載されています)。

リモート ファイル (scp://server//folder/file.txt) で作業しているときに、ファイルを保存してもバックアップが作成されていないことに気付きました。

リモートファイルを保存するたびに (vim バックアップ設定に従って) ローカルにバックアップを自動的に作成する方法はありますか?

4

5 に答える 5

2

切り替えるための簡単な設定はないと思います。ただし、スクリプトを作成することもできます。独自の自動コマンドを追加BufWriteCmdして、バックアップを作成してください。デバッグに使用set verbose=9してみてください(そしてnetrwがどのようにそれを行うかを確認してください)。

于 2009-02-19T02:41:40.830 に答える
2

私はかつて、この問題の変種と格闘していました。1台のリモート マシン 上の1のソース ツリーに加えた変更のローカル レコードを保持していました。

ソース ツリー全体のローカル コピーと、ファイルのバージョンを管理するためのローカル svn リポジトリを維持しました。netrw を使用してバックアップをローカルに保存する方法を探す代わりに、すべてをローカルで編集し、変更内容をリモート マシンに自動的に伝達する方法が必要でした。

解決策 1: BufWritePost 自動コマンドを使用して scp を呼び出し、ファイルが書き込まれた後にファイルをコピーします。これは、リモート マシンに対してマスター ssh セッションを実行し、後続のセッションで接続を共有できるため、システムでプロセスがファイル記述子を共有できる場合に十分効率的に機能します。運が悪い場合 (当時、私は Windows マシンで作業していました)、各ファイルの新しい接続をネゴシエートするのにかかる時間は苦痛になる可能性があります。

解決策 2: Windows の場合、「リモート マシンを最新の状態に保つ」モードを持つWinSCPを使用します。このモードでは、ディレクトリとそのすべてのサブディレクトリの変更を監視し、一連のルール (無視するパターン、転送するパターン) を指定して、変更を自動的に伝達します。異なるファイルタイプのモードなど)。

于 2009-07-18T21:58:48.847 に答える
0

netrw プラグインは:writeコマンドを完全にバイパスします。「バックアップ」機能を元に戻す唯一の方法は、自動コマンドを使用して自分で行うことです。

于 2009-07-20T08:40:26.033 に答える
0

元の質問に対する直接の回答ではないことは承知していますが、あなたがしていることは変装した単純な VCS のように思えます。つまり、git リポジトリなどのリモート ファイルを作成しない理由はありますか?そのリポジトリをローカルに複製し、編集後に変更をプッシュしますか?

于 2009-07-20T15:01:28.987 に答える