当前位置: 首页 > 知识库问答 >
问题:

vim自动读取netrw以防止意外覆盖

宇文和同
2023-03-14

在vim中使用< code>netrw访问远程文件时,是否存在与< code>:autoread等效的内容?

我通过netrw远程访问工作机器上的文件,然后在上班时修改那里的文件。然而,如果我回到远程访问,如果文件已经在缓冲区中打开,很容易忘记重新加载文件-如果它已经在工作机器上修改过,那么下一个:w将覆盖我在工作时所做的任何更改。我正在寻找一个“安全网”来降低数据丢失的风险(幸运的是,我还没有因为<code>的.swp</code>文件而丢失任何数据,但这不是一个非常令人放心的网)。

共有2个答案

顾高翰
2023-03-14

您是否尝试过: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. 
孟浩然
2023-03-14

使用< code >“autoread”,Vim只需检查文件修改时间。由于netrw目标驻留在不同的系统上,这种查找将是最昂贵的,您必须自己触发它。一个想法是在< code > focus gain 事件上执行检查,即当您回到您的(家用机器的)Vim时。由于在Windows GVIM上,netrw访问会弹出一个控制台窗口(触发另一个< code > focus gain ),为了避免过于频繁的检查,我们将检查限制在一定的时间间隔内,例如最多每5分钟一次:

:autocmd FocusGained ftp://*,scp://* nested
\   if ! &modified && ! exists('b:lastchecktime') || localtime() - b:lastchecktime > 300 |
\       edit! |
\       let b:lastchecktime = localtime() |
\   endif
 类似资料:
  • 我使用Spring kafka 2. x读取来自kafka的消息。 我的问题是,如果我的方法在我的kafkalistener方法中花费了一段时间,那么kafka会发送相同的消息两次,这对我来说是个问题。我想要什么,如果我从Kafka读到消息,kafka不会向我发送这条消息第二次值,如 max.poll.interval.ms 不保证一次阅读消息。在Spring启动中实现一次阅读策略的正确方法是什么

  • 我在Windows 10上使用Vim80。使用Netrw命令,默认情况下它会打开我的路径。我想在我的计算机上打开特定的磁盘驱动器,如使用netrw的。我在Stack Overflow上搜索了类似的问题,并找到了使用或的答案,但它不会更改默认目录。什么是netrw vim命令,使我能够更改我正在使用的驱动器?

  • 问题内容: 我一直在寻找一种“灯箱”类型的解决方案,它允许这样做,但还没有找到(请提出建议,如果您知道的话)。 我尝试重新创建的行为就像单击图片时在Pinterest上看到的一样。叠加层是可滚动的( 因为整个叠加层像页面顶部的页面一样向上移动 ),但是叠加层 后面 的主体是固定的。 我试图仅使用CSS( _即使用覆盖整个页面和正文的覆盖层)_来创建它,但这并不能阻止其滚动。 如何防止正文/页面滚动

  • 问题内容: “ SQL语句缩进最佳实践”似乎是编写SQL块的公认格式。 是否有一个符合该标准的Vim缩进/语法文件,或者至少是紧密文件? 目前,我的Vim几乎保留了所有内容,仅缩进了某些关键字。 问题答案: “ SQLUtilities:SQL实用程序-格式化,生成- 列列表,数据库过程 ”具有SQL Utilities插件,该插件具有功能。与“如何在Vim中自动格式化和自动大写SQL ”是一个相

  • 问题内容: 我需要使用Java来读取和处理一些较大的文件,并且我想知道,是否有某种明智的方法来保护文件,使其在我读取和处理文件时不会被其他进程覆盖? 也就是说,可以通过某种方式将其设为只读,使其保持“打开”状态或类似的方式。 这将在Windows环境中完成。 br,Touko 问题答案: 你想要一个FileLock: 为了简单起见,我省略了一个try / finally块,但您不应该在生产代码中使

  • 问题内容: 有什么方法可以防止子类覆盖基类中的方法? 我的猜测是没有,但是我来自.NET界,并且我正试图使我的API尽可能健壮,因此,任何输入都将不胜感激。 可以强制执行吗?我知道编译器无济于事,所以也许通过一些运行时检查来解决?还是这不是一种处理事情的Python方法? 问题答案: 您是对的:您的尝试与Python的结构及其文化背道而驰。 记录您的API,并教育您的用户如何使用它。这是他们的程序