1

vimでリモートファイルにアクセスするため:autoreadに使用する場合と同等のものはありますか?netrw

私はnetrwを介してリモートで仕事用マシンのファイルにアクセスし、仕事に着いたらそこでファイルを変更します。ただし、リモートアクセスに戻ると、ファイルが既にバッファで開いている場合は、ファイルを再ロードするのを忘れがちです。作業マシンで変更されている場合は、次のファイルで:w変更が上書きされます。仕事。私はデータ損失のリスクを減らすために「セーフティネット」を探しています(幸いなことに、.swpファイルのためにまだ何も失っていませんが、それはあまり安心できるネットではありません)。

4

2 に答える 2

1

を使用'autoread'すると、Vimはファイルの変更時刻を確認するだけで済みます。netrwターゲットは別のシステムに存在するため、そのルックアップは最もコストがかかり、自分でトリガーする必要があります。1つのアイデアは、イベントでそのチェックを実行することFocusGainedです。つまり、(ホームマシンの)Vimに戻ったときに実行します。Windows GVIMでは、netrwアクセスによってコンソールウィンドウがポップアップ表示され(別のウィンドウがトリガーされますFocusGained)、頻繁なチェックを回避するために、チェックを特定の時間間隔、たとえば最大5分ごとに制限しましょう。

:autocmd FocusGained ftp://*,scp://* nested
\   if ! &modified && ! exists('b:lastchecktime') || localtime() - b:lastchecktime > 300 |
\       edit! |
\       let b:lastchecktime = localtime() |
\   endif
于 2013-03-27T07:57:08.463 に答える
1

やってみました:checktimeか?

        Check if any buffers were changed outside of Vim.
        This checks and warns you if you would end up with two
        versions of a file.
        [...]
        Each loaded buffer is checked for its associated file
        being changed.  If the file was changed Vim will take
        action.  If there are no changes in the buffer and
        'autoread' is set, the buffer is reloaded.  Otherwise,
        you are offered the choice of reloading the file. 
于 2013-06-25T03:43:44.670 に答える