Visual Studio Code: cambios de archivo de actualización automática

100

Trabajando con Visual Studio Code He notado que si un archivo con el que está trabajando cambia, cada vez que ese archivo se enfoca en un panel de código, se volverá a cargar desde el disco (si no tiene cambios en el archivo a través de VSCode) .

Sin embargo, si está en ese archivo, no hay ninguna alerta que le advierta sobre cambios en el archivo.

He estado revisando la configuración y no puedo encontrar nada como la opción de estudio visual:

Detectar cuando el archivo se cambia fuera del entorno

Entonces mi pregunta: ¿hay alguna configuración oculta o algún truco para hacer que suceda esa advertencia?

Actualizar

Resuelto en la versión 0.3.0 de Visual Studio Code.

  1. El archivo se actualizará desde el disco si no hay cambios a través del editor. (muy útil para leer archivos de registro durante la ejecución de un proceso)
  2. Si hay cambios en ambos lados (desde el disco y a través del editor) cada vez que intente guardar el archivo usando VSCode, el editor le advertirá sobre esa situación (es decir, "escrituras sucias") y una comparación de archivos le permitirá decidir qué hacer.
Juan M. Elosegui
fuente
1
si tiene cambios, ¿por qué NO los querría?
John Papa
12
@JohnPapa Estoy tratando de obtener el mismo comportamiento que encuentro en Visual Studio o texto sublime. Si no tengo cambios a través del IDE, el archivo del IDE debería actualizarse a la última versión del HDD. Si tengo cambios a través del IDE y también fuera del IDE, debería aparecer una advertencia alertando de esa situación. Algo como "El archivo xxx ha cambiado en el disco. ¿Quieres volver a cargarlo?"
Juan M. Elosegui
Consulte stackoverflow.com/questions/54995008/… y github.com/microsoft/vscode-docs/blob/vnext/release-notes/… para ver algunos cambios en este comportamiento, incluida la capacidad de evitar la notificación si lo desea.
Marcos
@johnPapa fácil. Supongamos que ha estado editando un archivo pensando que era un archivo diferente. De repente te das cuenta de eso y quieres perder tus cambios. O más relevante, revisa una rama de git diferente. Casi cualquier otro editor, como notepad ++, dirá inmediatamente "el archivo ha cambiado en el disco. ¿Quieres volver a cargarlo?". Vscode no lo detectará, y puedes hacer cambios, guardar y terminar sobrescribiendo la rama incorrecta, lo cual es terrible. No creo que sigo teniendo este problema en 2020
Gostega

Respuestas:

64

VSCode nunca actualizará el archivo si tiene cambios en ese archivo que no se guardan en el disco. Sin embargo, si el archivo está abierto y no tiene cambios, se reemplazará con los cambios en el disco, eso es cierto.

Actualmente no hay forma de deshabilitar este comportamiento.

Benjamín Pasero
fuente
52
Todos los demás editores tienen esto. Algunos archivos pueden ser modificados accidentalmente por el usuario, pero lo que el usuario realmente quiere es que se le diga que este archivo ha cambiado en el disco y se le pregunte si desea volver a cargar, al menos a través de algún panel de notificación en el editor.
Warren P
4
Otros editores pueden tener esto, pero este comportamiento persiste incluso al cerrar y volver a abrir VSCode, lo cual es muy peligroso si no espera que eso suceda. Es posible que tenga 10 archivos abiertos, vuelva a VS2017 y luego vuelva a VSCode 2 días después y haga 'guardar todo' .....
Simon_Weaver
6
@Ingemar Tenía muchas ganas de darle una oportunidad a VSCode (no menos importante para Angular intellisense) y quizás cambiar entre VS2017 y VSCode. A menudo hago un cambio en VSCode pero no lo guardo, luego termino cambiando el mismo archivo en VS2017. Volvería a VSCode y accidentalmente volvería a guardar el archivo sobre mi cambio (incluso después de cerrar / reabrir). En solo un par de días, mi cambio desapareció al menos dos veces y una vez finalmente descubrí por qué era prácticamente el final de VSCode para mí. Como mínimo, VSCode debería advertirle cuando guarde un archivo que ha sido modificado externamente desde que se abrió en VSCode.
Simon_Weaver
4
Esta respuesta tiene ahora 3 años, ¿alguien ha abierto un problema sobre esto? ¿Puedes publicar el enlace aquí?
Fabio dice reinstalar a Monica
19
File: Revert Filese puede utilizar para obtener contenido nuevo del disco.
Benjamin Pasero
27
{
    "files.useExperimentalFileWatcher" : true
}

en Código -> Preferencias -> Configuración

Probado con Visual Studio Code versión 1.26.1 en mac y win

Won Jun Bae
fuente
3
No funciona para mí (VSCode 1.26.1 en Windows 10): cuando un archivo se modifica externamente, si en el Código no hay cambios, se vuelve a cargar silenciosamente, de lo contrario no hará nada y luego cuando intento guardar me avisará sobre el conflicto, ofreciéndome solucionarlo comparando las 2 versiones. Todo esto sucede independientemente de files.useExperimentalFileWatcher, ya que he intentado tanto verdadero como falso, y no he visto ninguna diferencia.
Fabio dice reinstalar a Monica
5
Versión 1.28.2 (1.28.2) Code -> Preferences -> Settingsy busque "observador" Marque la casilla. Funciona para mi.
Shanimal
2
Maldita sea, eso consume CPU como loco en Linux.
abhi1010
9
@WonJunBae ¿Qué hace esto? Proporcione una descripción de esta función que está recomendando.
1,21 gigavatios
4
Ajuste de configuración desconocido en VSCode 1.41.1
Josh Correia
1

SUPER-SHIFT-p > File: Revert File es la única manera

(dónde SUPERestá Commanden Mac y Ctrlen PC)

David 天宇 Wong
fuente