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?


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ę).


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"

17

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


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


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


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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.