O Visual Studio Code sempre reabre o arquivo ou pasta anterior


97

O VSCode sempre parece se lembrar da minha sessão e reabrir os arquivos e / ou projeto que estavam abertos da última vez que o usei. Obviamente, ele se comporta corretamente ao ser executado a partir da linha de comando com um arquivo ou pasta fornecida, mas ao abrir a partir de um atalho da barra de tarefas, gostaria que o padrão fosse um ambiente vazio.

Existe alguma maneira de mudar esse comportamento?


9
Quão?? Meu VSCode nunca se lembra das sessões anteriores. Sempre abre com uma nova Untitled-1guia. Isso me deixa louco
Verde de

1
@Green Atualmente, ele só lembra os arquivos anteriores se você tiver uma pasta / área de trabalho aberta. Então, basta abrir qualquer pasta aleatória (eu escolhi minha pasta da área de trabalho) e agora ele se lembra de qualquer arquivo entre as sessões, mesmo aqueles que não sejam dessa pasta.
Cardin,

3
Um grande e grosso +1 de minha parte, porque esta questão realmente revelou que o código VS PODE RESTAURAR a sessão anterior. XD Também em termos do que @Cardin afirma que as coisas mudaram. Eu tenho o código VS mais recente em execução no Win10 e a configuração "window.reopenFolders" : "all"abre todos os arquivos, independentemente de estar no diretório ativo ou não. Infelizmente, parece que o código do VS ainda não suporta ter vários diretórios ativos por causa de todo aquele "diretório ativo = espaço de trabalho".
rbaleksandar

@rbaleksandar Isso ainda é negativo. O VS Code não reabre arquivos não sujos existentes a partir da versão 1.11.2, mesmo com "window.reopenFolders" : "all". Para testar, 1) vá para File>Close Folder, 2) arraste e solte qualquer arquivo aleatório no VS Code, 3) vá para File>Exit, 4) Reinicie o VS Code, 5) Observe que você obtém um editor de código VS em branco novamente. Para restaurar as sessões, você precisa ter um diretório ativo aberto. Qualquer sessão, independentemente da localização do arquivo, será lembrada, desde que você tenha um diretório ativo. Btw, você pode instalar a Project Managerextensão para saltar entre vários diretórios ativos.
Cardin

1
Esteja ciente, você pode perder o trabalho com esse recurso , pelo menos na v1.19.3.
gman

Respostas:


136

Você também pode acessar suas configurações e usar o seguinte:

"window.reopenFolders": "none"

que não reabrirá as pastas nas quais você estava trabalhando quando fechou o editor. As outras opções são one(o padrão) e all.

Editar 09-11-2017:

A opção agora foi alterada nas versões mais recentes.

"window.restoreWindows": "none"

Veja a resposta de Mathieu DOMER .

Editar 12/09/2018:

Outra configuração relacionada a isso é a hotExitconfiguração. Isso foi discutido nesta resposta a uma pergunta relacionada. Para evitar a reabertura e lembrar de arquivos não salvos, você pode definir isso para:

"files.hotExit": "off"

Mas, a partir do teste que fiz, quando a window.restoreWindowsconfiguração está definida como none, isso não é necessário. Eu não testei todas as combinações possíveis, então YMMV.

E para responder a uma pergunta nos comentários, para editar as configurações, você tem que abrir o arquivo de configurações. Alguma documentação pode ser encontrada aqui (pelo menos na data em que estou escrevendo isto).


1
Estou mudando a resposta aceita para esta, pois sinto que a abordagem de configurações é melhor do que uma alternância de linha de comando, que afeta apenas um atalho.
Matt Peterson

2
Pastas? Eu não uso pastas. Que tal apenas arquivos?
Verde de

2
Não tenho window.reopenFolderscomo opção de configuração. Em vez disso, eu tenhowindow.restoreWindows
Acidic9 de

2
Algo que pode incomodar alguns: o VS Code ainda restaurará o espaço de trabalho se ele contiver uma guia com um arquivo não salvo.
Wells

1
O pior "recurso" padrão que já vi. Perdi muito tempo produtivo de trabalho me perguntando o que estava acontecendo e por que meu arquivo de texto não estava sendo atualizado.
philologon

21

Com a atualização mais recente, parece que o parâmetro mudou, agora use:

"window.restoreWindows": "none"

16

Você pode adicionar a -nopção de inicialização do VS Code e ele sempre iniciará com uma janela vazia, não restaurando sua sessão anterior.


2
A opção está definitivamente lá (é code --helpexibida -n, --new-window Force to open a new window.), mas ainda reabre todas as janelas anteriores. Eu acho que isso significa apenas fazer algo significativo quando o programa já está em execução.
Álvaro González

onde está a startup? Não consigo encontrar onde adicionar o -n. É um arquivo? Posso acessá-lo em Configurações?
snowleopard

Apenas isso funcionou para mim em MacOs: "code -n ~ / myFolder / myCodeFolder"
Denis

13

No VS Code, digite Ctrl+ ,(ou escolha Arquivo / Preferências / Configurações ) para abrir a página de configurações e, em seguida, digite restoreWindowsna entrada Configurações de pesquisa para filtrar por esta configuração. Defina-o como nonee reinicie o navegador.

restoreWindows


1

01 de dezembro de 2018

Isso funciona para mim. ie"C:\Users\Sampath\AppData\Local\Programs\Microsoft VS Code\Code.exe" -n

insira a descrição da imagem aqui


1

Abaixo funcionou para mim

Clique com o botão direito do mouse em Atalho e adicione --disable-gpu ao Destino conforme a captura de tela.

insira a descrição da imagem aqui


0

Se "window.restoreWindows": "none"não resolver o problema,
tente executar o código como root -> sudo code --user-data-dirarquivos de código e reinicie o código normalmente sem root.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.