Код Visual Studio: автоматичне оновлення змін файлів


100

Робота з кодом Visual Studio Я помітив, якщо файл, з яким ви працюєте зі зміною, кожного разу, коли цей файл зосереджується на кодовій панелі, він буде перезавантажений з диска (якщо у вас немає змін у файлі через VSCode) .

Однак, якщо ви знаходитесь у цьому файлі, немає жодного попередження про попередження про зміни файлу.

Я переглядав налаштування, і не можу знайти нічого подібного до варіанту візуальної студії:

Виявити, коли файл змінюється поза середовищем

Отже, моє запитання: чи є якісь приховані налаштування чи якийсь хакер, щоб зробити це попередження.

Оновлення

Вирішено у версії 0.3.0 коду Visual Studio.

  1. Файл буде оновлений з диска, якщо через редактор не буде змін. (дуже корисно читати файли журналів під час виконання процесу)
  2. Якщо є зміни в обидві сторони (з диска і через редактор), коли ви намагаєтесь зберегти файл за допомогою VSCode, редактор попередить вас про цю ситуацію (тобто "брудно пише"), а порівняння файлів дозволить вам прийняти рішення що робити.

1
якщо у вас є зміни, чому б ви НЕ хотіли їх?
Джон Папа

12
@JohnPapa Я намагаюся отримати таку саму поведінку, яку я виявляю у візуальній студії чи піднесеному тексті. Якщо у мене немає змін через IDE, файл IDE слід оновити до останньої версії з жорсткого диска. Якщо у мене є зміни через IDE, а також поза межами IDE, повинно з’явитися попередження про попередження про цю ситуацію. Щось на кшталт "Файл xxx змінився на диску. Ви хочете його перезавантажити?"
Juan M. Elosegui

Див stackoverflow.com/questions/54995008 / ... і github.com/microsoft/vscode-docs/blob/vnext/release-notes / ... для деяких змін такої поведінки, в тому числі здатності запобігати повідомлення , якщо ви хочете.
Марк

@johnPapa легко. Скажімо, ви редагували файл, думаючи, що це інший файл. Ви раптом усвідомлюєте це і хочете втратити свої зміни. Або більш релевантно, ви оформили іншу гітку git. Практично будь-який інший редактор, такий як блокнот ++, негайно скаже, що "файл змінився на диску. Чи хочете ви перезавантажити? я вірю, що у мене все ще виникає ця проблема в 2020 році
Гостега

Відповіді:


64

VSCode ніколи не оновлює файл, якщо у ньому є зміни, які не збережені на диску. Однак якщо файл відкритий і не має змін, він замінить зміни на диску, це правда.

В даний час немає можливості відключити цю поведінку.


52
Інші редактори мають це. Деякі файли можуть бути випадково змінені користувачем, але те, що користувач насправді хоче, - сказати, що цей файл змінився на диску і запитав, чи хочуть вони перезавантажити, принаймні, через деяку панель сповіщень у редакторі.
Warren P

4
У інших редакторів це може бути, але така поведінка зберігається навіть при закритті та повторному відкритті VSCode, що дуже небезпечно, якщо ви не очікуєте, що це станеться. У вас може бути відкрито 10 файлів, поверніться до VS2017, а потім поверніться до VSCode через 2 дні та зробіть "збереження всіх" .....
Simon_Weaver

6
@Ingemar Я дуже хотів надати VSCode знімок (не в останню чергу для кутового інтеліссенсу) і, можливо, переключення між VS2017 та VSCode. Я часто вносив зміни в VSCode, але не зберігав їх, а потім змінював той самий файл у VS2017. Я повернусь до VSCode і випадково збережу файл після зміни (навіть після закриття / повторного відкриття). Всього за пару днів моя зміна зникла щонайменше двічі, і одного разу я нарешті зрозумів, чому для мене це майже закінчення VSCode. Принаймні, VSCode повинен попереджати, коли ви зберігаєте файл, який був зовнішньо модифікований з моменту його відкриття в VSCode.
Simon_Weaver

4
Цій відповіді зараз 3 роки, чи хтось відкрив питання з цього приводу? Чи можете ви опублікувати посилання тут?
Фабіо каже, що повернеться до Моніки

19
File: Revert Fileможна використовувати для отримання свіжого вмісту з диска.
Бенджамін Пасеро

27
{
    "files.useExperimentalFileWatcher" : true
}

у коді -> Налаштування -> Налаштування

Тестовано з кодом Visual Studio версії 1.26.1 на mac і win


3
Він не працює для мене (VSCode 1.26.1 в Windows 10): коли файл модифікований зовні, якщо в коді немає змін, він мовчки перезавантажується, інакше він нічого не зробить і тоді, коли я намагаюся зберегти це воно попередить мене про конфлікт, пропонуючи його вирішити, порівнюючи 2 версії. Все це відбувається незалежно від того files.useExperimentalFileWatcher, як я намагався істинно, і хибно, і я не бачив різниці.
Фабіо каже: Відновити Моніку

5
Версія 1.28.2 (1.28.2) Code -> Preferences -> Settingsта пошук "спостерігача" Установіть прапорець. Працює для мене.
Шанімал

2
Чорт забирає, що їсть процесор як божевільний на Linux.
abhi1010

9
@WonJunBae Що це робить? Будь ласка, дайте опис цієї функції, яку ви рекомендуєте.
1,21 гігаватта

4
Невідомі параметри конфігурації на VSCode 1.41.1
Josh Correia

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.