Visual Studio Code zawsze ponownie otwiera poprzedni plik lub folder

103

VSCode zawsze wydaje się zapamiętywać moją sesję i ponownie otwierać pliki i / lub projekt, które były otwarte ostatnim razem, gdy go użyłem. Oczywiście zachowuje się poprawnie, gdy jest uruchamiany z wiersza poleceń z dostarczonym plikiem lub folderem, ale podczas otwierania ze skrótu na pasku zadań chciałbym, aby domyślnie było to puste środowisko.

Czy istnieje sposób na zmianę tego zachowania?

Matt Peterson
źródło
9
W jaki sposób?? Mój VSCode nigdy nie pamięta poprzednich sesji. Zawsze otwiera się z zupełnie nową Untitled-1kartą. To mnie doprowadza do szału
Green
1
@ Zielony Obecnie zapamiętuje poprzednie pliki tylko wtedy, gdy masz otwarty folder / obszar roboczy. Po prostu otwórz dowolny folder losowy (wybrałem folder na pulpicie), a teraz zapamiętuje on wszystkie pliki między sesjami, nawet te, które nie pochodzą z tego folderu.
Cardin,
3
Wielkie +1 ode mnie, ponieważ to pytanie okazało się być takie, że kod VS MOŻE PRZYWRÓCIĆ poprzednią sesję. XD Również pod względem tego, co stwierdza @Cardin, wiele się zmieniło. Mam najnowszy kod VS działający w systemie Win10 i ustawienie "window.reopenFolders" : "all"otwiera każdy plik bez względu na to, czy znajduje się w aktualnie aktywnym katalogu, czy nie. Niestety wygląda na to, że kod VS nadal nie obsługuje posiadania wielu aktywnych katalogów z powodu tego całego „active directory = workspace”.
rbaleksandar
@rbaleksandar To wciąż negatyw. VS Code nie otwiera ponownie istniejących, niezabrudzonych plików od wersji 1.11.2, nawet z "window.reopenFolders" : "all". Aby przetestować, 1) przejdź do File>Close Folder, 2) przeciągnij i upuść dowolny plik do VS Code, 3) przejdź do File>Exit, 4) Uruchom ponownie VS Code, 5) Zauważ, że ponownie otrzymujesz pusty edytor VS Code. Aby przywrócić sesje, musisz mieć otwarty katalog aktywny. Każda sesja, niezależnie od lokalizacji pliku, będzie pamiętana, o ile masz aktywny katalog. Przy okazji, możesz zainstalować Project Managerrozszerzenie, aby przeskakiwać między wieloma aktywnymi katalogami.
Cardin
1
Pamiętaj, że możesz stracić pracę z tą funkcją , przynajmniej w wersji 1.19.3.
gman

Odpowiedzi:

142

Możesz także przejść do swoich ustawień i użyć:

"window.reopenFolders": "none"

co nie spowoduje ponownego otwarcia folderów, nad którymi pracowałeś podczas zamykania edytora. Inne opcje to one(domyślne) i all.

Edycja 2017-11-09:

Ta opcja jest teraz zmieniona w najnowszych wersjach.

"window.restoreWindows": "none"

Zobacz odpowiedź Mathieu DOMERA .

Edycja 2018-09-12:

Innym związanym z tym hotExitustawieniem jest ustawienie. Zostało to omówione w tej odpowiedzi na powiązane pytanie. Aby zapobiec ponownemu otwieraniu i zapamiętywaniu niezapisanych plików, możesz ustawić to na:

"files.hotExit": "off"

Ale z testu, który zrobiłem, gdy window.restoreWindowsustawienie jest ustawione na none, nie jest to potrzebne. Nie testowałem wszystkich możliwych kombinacji, więc YMMV.

Aby odpowiedzieć na pytanie w komentarzach, aby edytować ustawienia, musisz otworzyć plik ustawień. Część dokumentacji można znaleźć tutaj (przynajmniej w dniu, w którym to piszę).

ghlecl
źródło
1
Zmieniam zaakceptowaną odpowiedź na tę, ponieważ wydaje mi się, że podejście do ustawień jest lepsze niż przełącznik wiersza poleceń, który wpływa tylko na jeden skrót.
Matt Peterson
2
Lornetka składana? Nie używam folderów. A może tylko pliki?
Green
2
Nie mam window.reopenFoldersopcji ustawień. Zamiast tego mamwindow.restoreWindows
Acidic9
2
Coś, co może niektórych denerwować: VS Code nadal przywróci obszar roboczy, jeśli zawiera kartę z niezapisanym plikiem.
Wells,
1
Najgorsza domyślna „funkcja”, jaką kiedykolwiek widziałem. Straciłem dużo produktywnego czasu na zastanawianie się, co się dzieje i dlaczego mój plik tekstowy nie jest aktualizowany.
filologon
23

Wraz z najnowszą aktualizacją wydaje się, że parametr się zmienił, teraz użyj:

"window.restoreWindows": "none"
Mathieu DOMER
źródło
17

Możesz dodać -nopcję do uruchamiania programu VS Code i zawsze będzie ona rozpoczynać się od pustego okna, bez przywracania poprzedniej sesji.

Benjamin Pasero
źródło
2
Ta opcja jest definitywnie tam ( code --helpwyświetla -n, --new-window Force to open a new window.), ale nadal otwiera wszystkie poprzednie okna. Myślę, że ma to na celu zrobienie czegoś znaczącego tylko wtedy, gdy program już działa.
Álvaro González
gdzie jest startup? Nie mogę znaleźć, gdzie dodać -n. Czy to plik? Czy mogę uzyskać do niego dostęp w Ustawieniach?
Snowleopard
Tylko to zadziałało na MacOs: "code -n ~ / myFolder / myCodeFolder"
Denis
13

W programie VS Code wpisz Ctrl+ ,(lub wybierz Plik / Preferencje / Ustawienia ), aby otworzyć stronę ustawień, a następnie wpisz restoreWindowsdane wejściowe Ustawienia wyszukiwania, aby filtrować według tego ustawienia. Ustaw nonei uruchom ponownie przeglądarkę.

przywrócićWindows

RedFilter
źródło
1

01 grudnia 2018

To działa dla mnie. to znaczy"C:\Users\Sampath\AppData\Local\Programs\Microsoft VS Code\Code.exe" -n

wprowadź opis obrazu tutaj

Sampath
źródło
1

Poniżej pracował dla mnie

Kliknij prawym przyciskiem myszy Skrót i dodaj --disable-gpu do celu, jak na zrzucie ekranu.

wprowadź opis obrazu tutaj

Vatsal Shah
źródło
0

Jeśli "window.restoreWindows": "none"nie rozwiąż problemu,
spróbuj uruchomić kod jako root -> sudo code --user-data-dirpliki kodu i zrestartuj kod normalnie bez rootowania.

Khaled Alam
źródło
0

Dla mnie żadne z powyższych nie działa, gdy próbuję zamknąć "brudne" niezapisane pliki, które przypadkowo edytowałem 1000 plików i chciałem zignorować zapisywanie ich wszystkich.

Moja poprawka polegała na dodaniu tej linii do settings.json:

    "files.hotExit": "off"

Otwórz vscode, zamknij vscode i po prostu kliknij przycisk potwierdzenia, aby zamknąć wszystkie pliki bez zapisywania.

Następnie otwórz z powrotem vscode i boom ... nie będzie więcej pokazywać niezapisanych plików.

Wak Joko
źródło