Visual Studio Code всегда повторно открывает предыдущий файл или папку


103

Кажется, что VSCode всегда запоминает мой сеанс и повторно открывает файлы и / или проект, которые были открыты в последний раз, когда я его использовал. Очевидно, что он ведет себя правильно при запуске из командной строки с предоставленным файлом или папкой, но при открытии с помощью ярлыка на панели задач я бы хотел, чтобы по умолчанию была пустая среда.

Есть ли способ изменить это поведение?


9
Как?? Мой VSCode никогда не запоминает предыдущие сеансы. Он всегда открывается с новой Untitled-1вкладкой. Это сводит меня с ума
Грин

1
@Green В настоящее время он запоминает предыдущие файлы, только если у вас открыта папка / рабочее пространство. Так что просто откройте любую случайную папку (я выбрал папку на рабочем столе), и теперь он запоминает все файлы между сеансами, даже те, которые не из этой папки.
Cardin

3
Большой жирный +1 от меня, потому что этот вопрос фактически показал, что код VS МОЖЕТ ВОССТАНОВИТЬ предыдущий сеанс. XD Также, что касается того, что утверждает @Cardin, все изменилось. У меня есть последний код VS, работающий на Win10, и настройка "window.reopenFolders" : "all"открывает каждый файл независимо от того, находится он в текущем активном каталоге или нет. К сожалению, кажется, что код VS по-прежнему не поддерживает наличие нескольких активных каталогов из-за всего, что «активный каталог = рабочая область».
rbaleksandar

@rbaleksandar Это по-прежнему отрицательно. VS Code не открывает повторно существующие незагрязненные файлы с версии 1.11.2, даже с "window.reopenFolders" : "all". Чтобы проверить, 1) перейдите в File>Close Folder, 2) перетащите любой случайный файл в VS Code, 3) перейдите в File>Exit, 4) Перезапустите VS Code, 5) Обратите внимание, что вы снова получаете пустой редактор VS Code. Чтобы восстановить сеансы, вам необходимо открыть активный каталог. Любой сеанс, независимо от местоположения файла, будет запоминаться, пока у вас есть активный каталог. Кстати, вы можете установить Project Managerрасширение для перехода между несколькими активными каталогами.
Cardin

1
Имейте в виду , что вы можете потерять работу с этой функцией , по крайней мере, в v1.19.3.
gman 01

Ответы:


142

Вы также можете зайти в свои настройки и использовать следующее:

"window.reopenFolders": "none"

который не будет повторно открывать папки, над которыми вы работали, когда закрывали редактор. Другие варианты one(по умолчанию) и all.

Изменить 2017-11-09:

В последних версиях опция изменена.

"window.restoreWindows": "none"

См . Ответ Матье ДОМЕРА .

Изменить 2018-09-12:

Другой параметр, связанный с этим, - это hotExitпараметр. Это обсуждалось в этом ответе на связанный вопрос. Чтобы предотвратить повторное открытие и запоминание несохраненных файлов, вы можете установить следующее:

"files.hotExit": "off"

Но из проведенного мною теста, когда для window.restoreWindowsпараметра установлено значение none, в этом нет необходимости. Я не тестировал все возможные комбинации, поэтому YMMV.

А чтобы ответить на вопрос в комментариях, для редактирования настроек необходимо открыть файл настроек. Некоторую документацию можно найти здесь (по крайней мере, на дату, когда я это пишу).


1
Я меняю принятый ответ на этот, поскольку мне кажется, что подход с настройками лучше, чем переключатель командной строки, который влияет только на один ярлык.
Мэтт Петерсон

2
Папки? Папками не пользуюсь. Как насчет файлов?
Green

2
У меня нет window.reopenFoldersвозможности настройки. Вместо этого у меняwindow.restoreWindows
Acidic9

2
Кое-что может раздражать: VS Code все равно восстановит рабочую область, если в ней есть вкладка с несохраненным файлом.
Wells

1
Худшая стандартная "функция", которую я когда-либо видел. Я потерял много продуктивного рабочего времени, гадая, что происходит и почему мой текстовый файл не обновляется.
филолог

24

С последним обновлением кажется, что параметр изменился, теперь используйте:

"window.restoreWindows": "none"

17

Вы можете добавить -nопцию запуска VS Code, и он всегда будет запускаться с пустым окном, не восстанавливая предыдущий сеанс.


2
Опция окончательно присутствует ( code --helpотображается -n, --new-window Force to open a new window.), но все предыдущие окна открываются заново. Я думаю, это предназначено только для того, чтобы делать что-то значимое, когда программа уже запущена.
Альваро Гонсалес

где стартап? Я не могу найти, где добавить -n. Это файл? Могу ли я получить к нему доступ через Настройки?
snowleopard

Только это сработало для меня на MacOs: «code -n ~ / myFolder / myCodeFolder»
Денис

13

В VS кодексе введите Ctrl+ ,(или выберите File / Preferences / Настройка ) , чтобы открыть страницу настроек, а затем введите restoreWindowsв настройках поиска входных данных для фильтра для этого параметра. Установите noneи перезапустите браузер.

восстановить Windows


1

1 декабря 2018 г.

У меня это работает. т.е."C:\Users\Sampath\AppData\Local\Programs\Microsoft VS Code\Code.exe" -n

введите описание изображения здесь


1

Ниже работал у меня

Щелкните правой кнопкой мыши ярлык и добавьте --disable-gpu в Target, как показано на снимке экрана.

введите описание изображения здесь


0

Если "window.restoreWindows": "none"проблема не решена,
попробуйте запустить код как root -> sudo code --user-data-dirфайлы кода и перезапустите код в обычном режиме без root.


0

Для меня ничего из вышеперечисленного не работает, пока я пытаюсь закрыть «грязные» несохраненные файлы, которые я случайно отредактировал 1000 файлов и хотел проигнорировать сохранение всех из них.

Мое исправление заключалось в добавлении этой строки в settings.json:

    "files.hotExit": "off"

Откройте vscode, закройте vscode и просто нажмите кнопку подтверждения, чтобы закрыть все файлы без сохранения.

Затем откройте vscode и бум ... больше не отображаются несохраненные файлы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.