Acho que você pode tentar essa solução.
Usando o Windows Subsystem para Linux (WSL) do Sublime Text
E não, não é necessário substituir bash
por bash.exe
.
Instalei o Windows Subsystem para Linux (WSL) para Bash no Ubuntu no Windows (no seguinte, abreviado para "Bash"). Em cmd.exe
, posso executar bash -c gcc --version
, assim como posso usar cmd -k bash -c gcc --version
no menu inicial. No entanto, notei que não posso executar o mesmo comando a partir de aplicativos de terceiros, por exemplo, Texto sublime ou Atom.
Considere o seguinte sistema de compilação para o Sublime Text e, no momento, ignore o fato de que isso não criaria nada:
{
"cmd": [ "bash", "-c" "gcc", "--version" ],
"working_dir": "${project_path:${folder}}",
"selector" : "source.c"
}
A execução do comando de compilação resultará em Error: 0x80070057
. Com o modo legado para cmd.exe
ativado, o erro indica Unsupported console settings. In order to use this feature the legacy mode must be disabled.
Entre as outras coisas, eu já tentei que funcionasse:
Uso de caminhos absolutos para bash.exe
, por exemplo %SystemRoot%\System32\bash.exe
Execute um arquivo em lote na ferramenta de construção (conteúdo: bash -c gcc --version
). Notavelmente, o arquivo em lote funciona quando executado a partir de cmd.exe
Altere o comando de criação para [ "cmd", "/k", "bash", "-c" "gcc", "--version"]
Adicione "shell": true
ao meu arquivo de construção
Às vezes, o erro muda para "[bash] não é reconhecido como um comando interno ou externo", mesmo que C:\Windows\System32
esteja em meu caminho.
Existe uma limitação de que o Bash só pode ser lançado a partir de cmd.exe
? Há alguma solução alternativa que permita que eu lance o batch
do Sublime Text?
Acho que você pode tentar essa solução.
Usando o Windows Subsystem para Linux (WSL) do Sublime Text
E não, não é necessário substituir bash
por bash.exe
.
Eu não tenho o seu ambiente para testar isso, mas sugiro substituir "bash" por "bash.exe". O comando Windows cmd.exe requer o sufixo .exe para executar o comando bash.exe. O comando / usr / bin / bash da WSL não é o mesmo comando que o comando do Windows C: \ Windows \ System32 \ bash.exe.