Visual Studio代码:自动刷新文件更改

Visual Studio Code: Auto-refresh file changes

使用 Visual Studio 代码 我注意到如果您正在使用的文件发生变化,只要该文件聚焦在代码面板中,它就会从磁盘重新加载 (如果您没有通过 VSCode 对文件进行更改).

但是,如果您在该文件上,则不会有关于文件更改的警告。

我一直在查看设置,但找不到类似 visual studio 选项的任何内容:

Detect when file is changed outside the environment

所以我的问题是:是否有任何隐藏的设置或一些 hack 来使警告发生。

更新

已在 Visual Studio 代码的 0.3.0 版中解决。

  1. 如果编辑器没有更改,文件将从磁盘更新。 (在进程执行期间读取日志文件非常有用)
  2. 如果当您尝试使用 VSCode 保存文件时两边(从磁盘和通过编辑器)都有变化,编辑器会警告您这种情况(即 "dirty writes" ) 和 file comparison 将允许您决定要做什么。
如果文件中的更改未保存到磁盘,

VSCode 将永远不会刷新文件。但是,如果文件已打开且没有更改,它将替换为磁盘上的更改,这是正确的。

目前无法禁用此行为。

{
    "files.useExperimentalFileWatcher" : true
}

在代码 -> 首选项 -> 设置中

已在 mac 上使用 Visual Studio 代码版本 1.26.1 进行测试并赢得

SUPER-SHIFT-p > File: Revert File是唯一的方法

(其中 SUPER 在 Mac 上是 Command,在 PC 上是 Ctrl

在版本 1.57.1​​(2021 年 6 月)中,仍然没有像 Detect when file is changed outside the environment 这样的设置。 但是,如果文件在外部被意外更改,您只需使用 Undo (Ctrl+Z) 命令

即可轻松恢复更改

在 Ubuntu 上,使用 vscode 创建新文件后,直到我手动刷新资源管理器后它才会显示。真令人沮丧。我在 settings.json 中更改了一个密钥,之后一切正常:

"files.legacyWatcher": "on",

保存,重新启动 vscode 并确保安全:)