Pergunta : Posso chamar o Git-Bash para emitir um comando do WSL ? Contextos detalhados vão entre os dois divisores. ( Solução simples anexada no final desta questão .)
Eu uso um alias para compilar todos os meus *.tex
documentos, usando o Git-Bash no Windows 10. No meu c:/users/UserName/.bashrc
, mapeei:
alias lmk='latexmk -pvc -pdf --synctex=1 -src-specials -silent -time -interaction=nonstopmode'
Gvim.exe
Com um editor nativo e uma instância do Git-Bash que hospeda o latexmk
comando, não preciso mais me preocupar com o tedioso processo de compilação.
No entanto, quando emito o mesmo latexmk
comando por meio do WSL, não consigo mais executar a pesquisa direta e a pesquisa regressiva. Algumas opções para o compilador gravarão no PDF (ou em seu arquivo syntex), mapeando todas as linhas do PDF para as linhas do arquivo de origem detalhadas nos caminhos com sabor do WSL. Outra maneira de corrigir isso é: optar completamente pelo mundo WSL, onde uso o editor nativo + visualizador de PDF (que é completamente novo para mim) ou depurar ainda mais o compilador e ver se posso trocar todos os caminhos com sabor do WSL em caminhos com sabor do Windows (o que é, novamente, demorado).
Uma solução simples seria, de alguma forma, chamar o Git-Bash do WSL, passando os lmk
comandos para o Git-Bash como argumentos de linha de comando?
Além dos detalhes, em geral, o Git-Bash é algum executável que posso chamar diretamente do WSL? Em caso afirmativo, como dizer ao WSL que gostaria de executar a seguinte "coisa"? Na minha máquina, posso encontrar o Git-Bash como: "C:\Program Files\Git\git-bash.exe"
. Tentei passar /mnt/c/Program\ Files/Git/git-bash.exe
para o WSL e ele gentilmente abriu uma janela autônoma do Git Bash.
Solução de linha única usando zsh + GitBash
Eu uso zsh
como meu shell padrão para WSL, e aqui vai a função que defini para torná-la lmk TexFilename.tex
diretamente acessível a partir da linha de comando do WSL:
function lmk(){
"$(wslpath "C:\Program Files\Git\git-bash.exe")" --hide -c "lmk $1"
}
# Note, the `lmk` here is actually alias from Git-Bash, as defined in: c:/users/UserName/.
A linha a seguir facilita o encerramento do processo bash
/ oculto perl
: emitir lmk_kill
deve desativar todos os compiladores em execução (via latexmk
, um script perl).
alias lmk_kill="powershell.exe kill -n perl"
Resumindo: com a nova zsh
função, estou compilando *.tex
arquivos do WSL como se estivesse usando os compiladores MikTeX nativos no Windows. Isso funciona bem com minhas configurações atuais de GVIM + Sumatra, onde a pesquisa para frente e para trás são totalmente funcionais.
Solução ainda mais simples: hospedar latexmk
por meio do PowerShell
Para obter detalhes, consulte esta resposta abaixo.
alias lmk='powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode'
E compile main.tex
arquivos em qualquer lugar, digamos, em um painel da sessão do Tmux no WSL, usando o comando simples lmk main.tex
.
Primeiro, com algum exemplo. Seja um comando simples
touch test.txt
.Então, como isso funciona? A
--
opção afterwsl.exe
passa a linha de comando restante como está. Em seguida,wslpath
converte o caminho do estilo Windows (barra invertida) para o estilo WSL/Unix (barra), ou seja,C:\
torna -se/mnt/c
(por padrão). O resto são as opções paragit-bash.exe
. Aqui estão alguns deles. Para leituras adicionais, consulte interoperabilidade do WSL com o Windows .Não há necessidade de ficar apegado a
Git-bash
nada. O requisito essencial na postagem original era compilar*.tex
documentos usando MikTeX nativo em máquinas Windows. Qualquer shell de comando que tenha acessoPATH
e, portanto, olatexmk
executável pode fazer o trabalho.O problema com
Git-bash
: Agit-bash.exe
janela sempre inicia em seu próprio emulador em uma nova janela, impossibilitando o trabalho com o Tmux. Agora não vejo necessidade de usar o Git-Bash para produção. Adeus, um velho amigo meu :). No entanto, executar o instaladorgit
de sua página de download ainda é a primeira coisa a fazer quando personalizo minha máquina Windows. Ele fornecegit.exe
o necessário paragvim.exe
o Windows.Uma forma prática de compilar
*.tex
arquivos usando Native MikTeX (latexmk
)Existem outros shells de comando disponíveis no Windows e todos estão disponíveis para WSL. Por exemplo:
powershell.exe
deve abrir o PowerShell dentro do mesmo emulador que hospeda a sessão WSL, possibilitando "hospedar umlatexmk
processo de compilação dentro do WSL". Isso abre a porta para hospedar vários "compiladores de segundo plano" por meio do Tmux.Comando de uma linha para chamar
latexmk
do MikTeX, usando a instalação nativa do Windows 10:Uso: atribua a longa linha de comando a um alias para o shell usado no WSL, como:
Em seguida, no diretório em que
main.tex
está localizado, emita o comandolmk main.tex
para compilar o documento LaTeX no modo contínuo. O conjunto de sinalizadores que seguialatexmk
o comando também habilitaria a pesquisa para frente/para trás.