Visual Studio-Code: Dateiänderungen automatisch aktualisieren

100

Arbeiten mit Visual Studio-Code Ich habe festgestellt, dass eine Datei, mit der Sie arbeiten, immer dann, wenn sie in einem Codefenster fokussiert wird, von der Festplatte neu geladen wird (wenn Sie keine Änderungen an der Datei über VSCode haben) .

Wenn Sie sich jedoch in dieser Datei befinden, wird Sie nicht vor Dateiänderungen gewarnt.

Ich habe die Einstellungen überprüft und kann so etwas wie die Visual Studio-Option nicht finden:

Erkennen, wenn eine Datei außerhalb der Umgebung geändert wird

Also meine Frage: Gibt es eine versteckte Einstellung oder einen Hack, um diese Warnung auszulösen?

Aktualisieren

In Version 0.3.0 von Visual Studio Code gelöst.

  1. Die Datei wird von der Festplatte aktualisiert, wenn im Editor keine Änderungen vorgenommen wurden. (sehr nützlich, um Protokolldateien während einer Prozessausführung zu lesen)
  2. Wenn sich auf beiden Seiten (von der Festplatte und über den Editor) Änderungen ergeben, wenn Sie versuchen, die Datei mit VSCode zu speichern, warnt Sie der Editor vor dieser Situation (dh "Dirty Writes"), und Sie können anhand eines Dateivergleichs entscheiden was ist zu tun.
Juan M. Elosegui
quelle
1
Wenn Sie Änderungen haben, warum möchten Sie diese NICHT?
John Papa
12
@ JohnPapa Ich versuche, das gleiche Verhalten zu erzielen, das ich in Visual Studio oder erhabenem Text finde. Wenn ich keine Änderungen über die IDE habe, sollte die Datei auf der IDE von der Festplatte auf die neueste Version aktualisiert werden. Wenn ich Änderungen über die IDE und auch außerhalb der IDE habe, sollte eine Warnung angezeigt werden, die auf diese Situation hinweist. So etwas wie "Die Datei xxx hat sich auf der Festplatte geändert. Möchten Sie sie neu laden?"
Juan M. Elosegui
Unter stackoverflow.com/questions/54995008/… und github.com/microsoft/vscode-docs/blob/vnext/release-notes/… finden Sie einige Änderungen an diesem Verhalten, einschließlich der Möglichkeit, die Benachrichtigung zu verhindern, wenn Sie dies wünschen.
Mark
@ JohnPapa einfach. Angenommen, Sie haben eine Datei bearbeitet und gedacht, es sei eine andere Datei. Sie erkennen das plötzlich und möchten Ihre Änderungen verlieren. Oder relevanter, Sie checken einen anderen Git-Zweig aus. Fast jeder andere Editor wie Notepad ++ sagt sofort: "Die Datei hat sich auf der Festplatte geändert. Möchten Sie sie neu laden? Vscode erkennt sie nicht, und Sie können Änderungen vornehmen und den falschen Zweig speichern und am Ende überschreiben, was schrecklich ist. Kann ' Ich glaube nicht, dass ich dieses Problem im Jahr 2020 noch habe
Gostega

Antworten:

64

VSCode aktualisiert die Datei niemals, wenn Sie Änderungen an dieser Datei haben, die nicht auf der Festplatte gespeichert sind. Wenn die Datei jedoch geöffnet ist und keine Änderungen enthält, wird sie durch die Änderungen auf der Festplatte ersetzt.

Es gibt derzeit keine Möglichkeit, dieses Verhalten zu deaktivieren.

Benjamin Pasero
quelle
52
Andere Redakteure haben dies alle. Einige Dateien können vom Benutzer versehentlich geändert werden. Der Benutzer möchte jedoch unbedingt mitteilen, dass sich diese Datei auf der Festplatte geändert hat, und gefragt werden, ob er sie neu laden möchte, zumindest über einen Benachrichtigungsbereich im Editor.
Warren P
4
Andere Editoren haben dies möglicherweise, aber dieses Verhalten bleibt auch beim Schließen und erneuten Öffnen von VSCode bestehen. Dies ist sehr gefährlich, wenn Sie dies nicht erwarten. Möglicherweise sind 10 Dateien geöffnet, kehren Sie zu VS2017 zurück und kehren Sie 2 Tage später zu VSCode zurück und speichern Sie alle .....
Simon_Weaver
6
@Ingemar Ich wollte VSCode unbedingt ausprobieren (nicht zuletzt für Angular Intellisense) und vielleicht zwischen VS2017 und VSCode wechseln. Ich habe oft eine Änderung in VSCode vorgenommen, diese aber nicht gespeichert und dann dieselbe Datei in VS2017 geändert. Ich würde wieder zu VSCode wechseln und die Datei versehentlich über meine Änderung hinweg erneut speichern (auch nach dem Schließen / erneuten Öffnen). In nur wenigen Tagen verschwand mein Wechsel mindestens zweimal und als ich endlich herausfand, warum es für mich so ziemlich das Ende von VSCode war. Zumindest sollte VSCode warnen, wenn Sie eine Datei speichern, die seit dem Öffnen in VSCode extern geändert wurde.
Simon_Weaver
4
Diese Antwort ist jetzt 3 Jahre alt. Hat jemand ein Problem dazu eröffnet? Kannst du bitte den Link hier posten?
Fabio sagt Reinstate Monica
19
File: Revert Filekann verwendet werden, um frischen Inhalt von der Festplatte zu erhalten.
Benjamin Pasero
27
{
    "files.useExperimentalFileWatcher" : true
}

in Code -> Einstellungen -> Einstellungen

Getestet mit Visual Studio Code Version 1.26.1 auf Mac und Win

Jun Bae gewonnen
quelle
3
Bei mir funktioniert das nicht (VSCode 1.26.1 unter Windows 10): Wenn eine Datei extern geändert wird und im Code keine Änderungen vorgenommen werden, wird sie stillschweigend neu geladen, andernfalls wird nichts unternommen, und wenn ich versuche zu speichern es wird mich vor dem Konflikt warnen und anbieten, ihn durch Vergleichen der beiden Versionen zu lösen. All dies geschieht unabhängig davon files.useExperimentalFileWatcher, da ich sowohl wahr als auch falsch versucht habe und keinen Unterschied gesehen habe.
Fabio sagt Reinstate Monica
5
Version 1.28.2 (1.28.2) Code -> Preferences -> Settingsund Suche nach "Beobachter" Aktivieren Sie das Kontrollkästchen. Funktioniert bei mir.
Shanimal
2
Verdammt, das frisst die CPU unter Linux wie verrückt.
Abhi1010
9
@WonJunBae Was macht das? Bitte geben Sie eine Beschreibung für diese Funktion, die Sie empfehlen.
1,21 Gigawatt
4
Unbekannte Konfigurationseinstellung für VSCode 1.41.1
Josh Correia
1

SUPER-SHIFT-p > File: Revert File ist der einzige Weg

(wo SUPERist Commandauf Mac und Ctrlauf PC)

David 天宇 Wong
quelle