Terminal: Terminal Windows: Abra o terminal na pasta atual por meio de um único comando

Criado em 9 mai. 2019  ·  43Comentários  ·  Fonte: microsoft/terminal

Atualmente eu posso abrir cmd e powershell na pasta atual digitando cmd ou powershell na barra de endereços do explorer (que abre via CTRL + D, então é realmente limpo e rápido).

Seria ótimo se isso também fosse possível com o novo Terminal Windows. Mas, como é um aplicativo da Windows Store, não consigo encontrar uma maneira fácil de adicioná-lo ao PATH. Também não respeita a pasta atual ao abrir. Ele sempre começa na pasta padrão ( C:\WINDOWS\system32 para cmd e ~ para Ubuntu).

Seria ótimo se isso fosse possível:

  • Torne possível adicionar o Terminal do Windows ao PATH.
  • Abra a linha de comando na pasta atual no Terminal do Windows.

Também seria bom se pudesse ser aberto com um comando curto.
O executável atualmente é denominado WindowsTerminal . Seria bom se pudéssemos simplesmente digitar algo como term .

Resolution-Answered

Comentários muito úteis

A partir da v0.5, isso não funcionará mais. Você precisará definir "startingDirectory": null para que isso funcione de fato. Essa correção regrediu involuntariamente em # 2515.

Todos 43 comentários

O que acontece se você usar wt.exe ?

https://github.com/microsoft/Terminal/blob/af7316c130059ba15fe16ff0d13608d956a2b449/src/cascadia/CascadiaPackage/Package.appxmanifest#L51

O alias já deve iniciar um WindowsTerminal, mas não tenho certeza se ele inicia no caminho que você especificou

@joandrsn Isso é ótimo, eu não sabia. Obrigado.

@joandrsn Obrigado! Ele até inicia no diretório atual!

Como você passa um caminho de diretório para wt.exe. Algo assim:

wt.exe "C:\GitHub"

Tentou, mas sempre abre na pasta padrão para CMD e PowerShell.

Posso abrir o shell WSL do Ubuntu na pasta atual com ubuntu run . mas wt sempre abre na pasta padrão

Remova startingDirectory do seu profiles.json.

Olá @ DHowett-MSFT,
existe uma maneira de pedir a Windows Terminal abrir uma nova aba na mesma pasta da aba atual? Desejo o mesmo comportamento existente em Mac OS X : https://apple.stackexchange.com/questions/178017/how-do-i-open-a-new-terminal-window-for-same-directory -as-the-current-window.
Desde já, obrigado!

Remova startingDirectory do seu profiles.json.

@ DHowett-MSFT, isso não funciona na versão mais recente 0.5.2661.0 :(

Remova startingDirectory do seu profiles.json.

Para mim, também não funciona :(

A partir da v0.5, isso não funcionará mais. Você precisará definir "startingDirectory": null para que isso funcione de fato. Essa correção regrediu involuntariamente em # 2515.

Eu também gostaria de abrir novas guias no diretório atual

A partir da v0.5, isso não funcionará mais. Você precisará definir "startingDirectory": null para que isso funcione de fato. Essa correção regrediu involuntariamente em # 2515.

@ zadjii-msft, isso não funciona na v0.5.2681.0

A partir da v0.5, isso não funcionará mais. Você precisará definir "startingDirectory": null para que isso funcione de fato. Essa correção regrediu involuntariamente em # 2515.

Também não funciona com 0.5.2762.0 ..
Eu tentei remover o valor, definindo como nulo .. ambos não mudam nada ..

Para ser claro, _remover startingDirectory vez de defini-lo como null _ não é um recurso que está voltando; estamos procurando abordagens alternativas em relação a quando exatamente aplicar o StartingDirectory, mas a configuração sempre poderá ser suprimida definindo-a como null.

A partir da v0.5, isso não funcionará mais. Você precisará definir "startingDirectory": null para que isso funcione de fato. Essa correção regrediu involuntariamente em # 2515.

Também não funciona com 0.5.2762.0 ..
Eu tentei remover o valor, definindo como nulo .. ambos não mudam nada ..

"startingDirectory": null funciona para mim - precisa ser colocado em um perfil específico, em vez de ser um elemento de nível raiz

@ DHowett-MSFT, parece-me que uma abordagem de ter configurações em um arquivo de configuração ( startingDirectory ) que podem ser substituídas pela passagem de parâmetros de linha de comando é bastante comum em geral. Talvez eu não esteja entendendo o problema aqui :)

Se bem me lembro da conversa do mês passado, foi:

Limpar a configuração “StartingDirectory” excluindo-o de seu perfil de usuário (no caso específico de dois ou três perfis padrão enviados), em vez de configurá-lo para null para apagá-lo, não é um recurso que será voltando.

607 especifica que ofereceremos suporte a argumentos de linha de comando, um dos quais será a substituição do diretório inicial.

Isso parece estar de acordo com meu entendimento sobre sua compreensão desta conversa. :sorriso:

Para mim, definindo "startedDirectory": "." faz o trabalho.

Existe outro problema para ter o terminal padrão aberto para dizer "%USERPROFILE%" mas null se iniciado a partir do Windows Explorer?

@carlinmack Não acho que seja totalmente necessário.

  • O Terminal do Windows padroniza para o diretório inicial do usuário se você iniciá-lo através do atalho do menu Iniciar ou digitando "wt" no Win + R. O que significa que se você usar "startingDirectory": "." eles ainda serão abertos na pasta pessoal do usuário ( %USERPROFILE% ).
  • Se você iniciar o wt a partir da barra de endereços do Windows Explorer ou por meio de algo como cmd.exe (ou outro shell) navegou para uma determinada pasta, o "startingDirectory": "." garantirá que o Terminal do Windows seja aberto no diretório em que você estava.
  • No entanto ... Quaisquer guias adicionais que você abrir na sessão do Terminal do Windows serão abertas no "diretório de trabalho atual" a partir do momento da inicialização, o que pode ser um pequeno aborrecimento.

O Terminal do Windows padroniza para o diretório inicial do usuário se você iniciá-lo através do atalho do menu Iniciar ou digitando "wt" no Win + R. O que significa que se você usar "startedDirectory": "." eles ainda abrem na pasta pessoal do usuário (% USERPROFILE%).

Nesse caso, o padrão é system32.

Obrigado @torpederos

"StartingDirectory": " . "
"StartingDirectory": "% __ CD __ %"

Verificado. Ambos funcionam bem para mim. Minha solução .

@RickStrahl escreveu um bom blog sobre esse assunto. Dê uma olhada .

No meu caso, funcionou.

"profiles":
    {
        "defaults":
        {
            "startingDirectory": "."
        },

"startingDirectory": "." funciona, mas quando abro o terminal da pesquisa, o padrão é system32.
Existe alguma maneira de abrir no diretório do usuário quando o caminho não é especificado?

"startingDirectory": "." funciona, mas quando abro o terminal da pesquisa, o padrão é system32.
Existe alguma maneira de abrir no diretório do usuário quando o caminho não é especificado?

Eu tive o mesmo problema. Eu corrigi-lo adicionando a seguinte linha no final do meu arquivo .bashrc.

export CURR_DIRECTORY=`pwd`
if [ "$CURR_DIRECTORY" = "/mnt/c/WINDOWS/system32" ]; then
    cd ~
fi

A solução de @manishprivet foi ótima, exceto que, para funcionar corretamente, alterei system32 para System32 . É uma boa ideia executar pwd e copiar a saída.

Eu encontrei uma solução ao adicionar "abrir terminal aqui" para clicar com o botão direito.

passo 1:-
Remova o diretório inicial do settings.json para todos os perfis.

passo 2:-
Adicione o terminal aberto para clicar com o botão direito de acordo com esta postagem.
https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
Mudei o segundo valor de registro de @="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe" para @="C:\Users\[your username]\AppData\Local\Microsoft\WindowsApps\wt.exe -d ."

Comportamento após modificações:
Portanto, sempre que eu abrir o terminal usando pesquisa / barra de tarefas / atalho, ele será aberto na minha pasta de usuário.
Sempre que desejo abrir o terminal usando o explorer, basta clicar com o botão direito e selecionar a opção Windows terminal here .

Observação 1: não se esqueça de adicionar -d . no final do segundo valor do registro, caso contrário, isso não funcionará.

Observação 2: digitar wt na barra do explorador ainda abre o terminal no system32. Você ainda deve digitar wt -d . se quiser abrir o terminal na pasta atual usando a "barra do explorador".

Basta adicionar

"startingDirectory": null

Ele funciona com wt V1.0 corretamente.

Se você preferir fazer wt mostrado no SHIFT-Menu apenas como "Abrir janela do PowerShell aqui" ou Abrir opções WSL, você pode mesclar este arquivo de registro ao seu Registro.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
"ShowBasedOnVelocityId"=dword:00639bc8
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[YourUserName]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

Observe que o parâmetro startingDirectory deve ir neste lugar na estrutura JSON:

{
    //...

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.

            // Attempt to start in current directory
            // https://github.com/microsoft/terminal/issues/620
            "startingDirectory": "."
        }
    }
}

Ainda estou para ver uma solução que faça o seguinte:

  1. Permita-me selecionar um diretório padrão ao abrir o Terminal no menu Iniciar.
  2. Ao executar wt.exe a partir da janela do explorer, o Terminal será aberto para esse diretório.

Isso é possível?

Pela minha investigação , isso não era algo tecnicamente possível.

Se você quiser que ambos funcionem, você precisará usar wt -d . na barra de endereço do explorer. Isso permitirá que você inicie o Terminal a partir do menu iniciar e a caixa de execução funcione da mesma forma que antes, e ainda permitirá que você abra o Terminal no CWD no explorer

Da minha exploração inicial, aqui está o que eu encontrei com base em https://docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows

Abordagem 1:

  1. Pressione a tecla WIN + R
  2. Digite wt -d D:\SomeDirectory

Isso abrirá o shell padrão presente no settings.json com esse diretório
PS Escolha o caminho com base no sistema operacional do shell padrão

Abordagem 2:

  1. Vá para a pasta desejada usando o Explorador de Arquivos
  2. Na barra de endereço da pasta desejada, digite wt -d .

@AndeYashwanth Isso funciona perfeitamente, obrigado. Agora posso abri-lo no meu diretório de usuário a partir da barra de tarefas e só abrir no diretório atual quando clico com o botão direito do mouse 😎

Obrigado @ 29kartik, a abordagem 1 funcionou para mim. Consegui fazer o GitKraken usar um comando de terminal personalizado de wt -d %d modo que agora seu atalho de terminal inicie o WT no diretório do repo atual. 💯

Eu adicionei isso para abrir nesta pasta específica

 "startingDirectory": "C:\\webdev"

Esta é minha opinião sobre o atalho do menu de contexto: https://gist.github.com/kmantel/9cd6bf9f0fb25694a5b08119817281b7

@nickraphael :

Ainda estou para ver uma solução que faça o seguinte:

  1. Permita-me selecionar um diretório padrão ao abrir o Terminal no menu Iniciar.
  2. Ao executar wt.exe a partir da janela do explorer, o Terminal será aberto para esse diretório.

Tendo isto em settings.json :

{
    "profiles": {
        "defaults": {
            "startingDirectory": "."
        }
    }
}

faz com que o Windows Terminal inicie no diretório atual para mim quando iniciado a partir da caixa de localização do Explorer, win + r ou de outros programas (VS Code etc.). No entanto, ao iniciar a partir do menu Iniciar, pesquisando ou navegando até o atalho, ele começa em C:\WINDOWS\system32 .

Para corrigir o problema do menu Iniciar, fixei um atalho para wt.exe no menu Iniciar ( where wt informa sua localização), renomeei o atalho de acordo com minha preferência e o modifiquei para ter:

Start in: %USERPROFILE%

Agora o Windows Terminal é iniciado em meu diretório inicial quando iniciado a partir do menu Iniciar.

Seria bom se o Terminal do Windows não mudasse seu diretório por padrão para torná-lo mais transparente. Não existem muitos outros programas que fazem isso.

Também estou me perguntando se o atalho para wt.exe pode ser feito pelo instalador automaticamente.

Portanto, nenhuma das respostas acima funcionou para meu caso de uso. O que eu gostaria de fazer é abrir uma nova guia usando alt+shift+- e manter a pasta anterior. Tentei usar null , "." e "%__CD__%" como valores para "startingDirectory" em diferentes lugares do JSON. Estou usando a versão 1.4.2652.0 do Windows Terminal Preview.

Uma boa solução seria ter uma nova opção como "keepCurrentDirectoryOnNewTab": true ou algo parecido. Outra maneira (que o Kitty usa) é ter um valor especial chamado current ao especificar o diretório.

@frankitox Você provavelmente está interessado em # 3158 e outras 20 questões que são enganadas para esse tópico
image

Tem havido muita discussão sobre por que isso é difícil ou quase impossível de fazer corretamente no Windows.

VERSÃO: 1.3.2651.0

no meu caso funciona.

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "startingDirectory": "."
        },

também, você pode usar "startingDirectory": "%__CD__%"

Provavelmente estou muito atrasado para a festa, mas no Windows 10 Pro 20H2, você pode simplesmente digitar wt na barra de endereço e isso resolverá o problema.

Como você passa um caminho de diretório para wt.exe. Algo assim:

wt.exe "C:\GitHub"

Não sei se você encontrou -d e path

wt -d .

funciona bem em WSL2

Esta página foi útil?
0 / 5 - 0 avaliações