
質問: 電話してもいいですかGit-Bash命令を出すワールドワイド? 詳細なコンテキストは 2 つの区切りの間に入力します。(この質問の最後に簡単な解決策を追加しました。
*.tex
私はすべての文書をコンパイルするためにエイリアスを使用しています。Git-BashWindows 10 でc:/users/UserName/.bashrc
、私は次のようにマッピングしました:
alias lmk='latexmk -pvc -pdf --synctex=1 -src-specials -silent -time -interaction=nonstopmode'
ネイティブGvim.exe
エディターとGit-Bashコマンドをホストするインスタンスを作成すればlatexmk
、面倒なコンパイル プロセスに煩わされる必要がなくなります。
ただし、WSL 経由で同じlatexmk
コマンドを発行すると、前方検索と後方検索を実行できなくなります。コンパイラの一部のオプションは、PDF (またはその構文ファイル) に書き込み、PDF のすべての行を WSL 風味のパスに詳述されているソース ファイルの行にマッピングします。これを修正する別の方法は、ネイティブ エディター + PDF ビューアー (私にとってはまったく新しい) を使用する WSL の世界に完全に移行するか、コンパイラをさらにデバッグして、すべての WSL 風味のパスを Windows 風味のパスに交換できるかどうかを確認することです (これも時間がかかります)。
簡単な解決策としては、何らかの方法で WSL から Git-Bash を呼び出し、lmk
コマンドをコマンドライン引数として Git-Bash に渡すことでしょうか?
詳細はさておき、一般的にはGit-BashWSLから直接呼び出せる実行ファイルはありますか?もしあるなら、どうすればいいですか?教えてWSLで次の「もの」を実行したいのですが、私のマシンでは、Git-Bashとして: "C:\Program Files\Git\git-bash.exe"
。WSL に渡そうとしました/mnt/c/Program\ Files/Git/git-bash.exe
が、スタンドアロンの Git Bash ウィンドウが開かれただけでした。
zsh + GitBash を使用したワンライナーソリューション
私は WSL のデフォルト シェルとして使用しており、 WSL のコマンド ラインから直接呼び出せるzsh
ように定義した関数を次に示します。lmk TexFilename.tex
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/.
次の行により、隠しbash
/perl
プロセスを簡単に終了できます。 を発行すると、lmk_kill
実行中のすべてのコンパイラが終了します ( latexmk
Perl スクリプト経由)。
alias lmk_kill="powershell.exe kill -n perl"
要約すると、新しいzsh
機能を使用すると、Windows でネイティブの MikTeX コンパイラーを使用しているかのように、WSL からファイルをコンパイルできます*.tex
。これは、前方検索と後方検索の両方が完全に機能する GVIM + Sumatra の現在の設定でうまく機能します。
さらに簡単な解決策: latexmk
PowerShell 経由でホストする
詳細については、この答え下に。
alias lmk='powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode'
また、main.tex
簡単なコマンドを使用して、WSL 上の Tmux セッションのペインなど、どこでもファイルをコンパイルできますlmk main.tex
。
答え1
まず、いくつか例を挙げます。簡単なコマンドを としますtouch test.txt
。
- Windows スタイルの場合:
"C:\Program Files\Git\git-bash.exe" --hide -c "touch test.txt"
- WSL スタイル:
wsl.exe -- "$(wslpath "C:\Program Files\Git\git-bash.exe")" --hide -c "touch test.txt"
では、これはどのように動作するのでしょうか。--
の後のオプションは、wsl.exe
残りのコマンド ラインをそのまま渡します。次に、wslpath
Windows スタイル (バックスラッシュ) のパスを WSL/Unix スタイル (スラッシュ) に変換します。つまり、C:\
になります/mnt/c
(既定)。残りは のオプションですgit-bash.exe
。こここれらはその一部です。詳しくはWSL と Windows の相互運用性。
答え2
Git-bash
まったく執着する必要はありません。元の投稿で必須だったのは*.tex
、Windows マシンでネイティブの MikTeX を使用してドキュメントをコンパイルすることでした。実行ファイルにアクセスできるコマンド シェルであれPATH
ばどれでも、latexmk
この作業を実行できます。
問題Git-bash
:git-bash.exe
ウィンドウは常に新しいウィンドウの独自のエミュレータで起動するため、Tmux で作業することはできません。Git-Bash を本番環境で使用する必要性がなくなったと思います。さようなら、古い友人 :)。それでもgit
、ダウンロードページは、Windows マシンをカスタマイズするときに最初に行うことです。Windowsでgit.exe
必要なものを提供しますgvim.exe
。
*.tex
ネイティブ MikTeX を使用してファイルをコンパイルする実用的な方法( latexmk
)
Windows では他のコマンド シェルも使用可能で、それらはすべて WSL で使用できます。たとえば、powershell.exe
WSL セッションをホストする同じエミュレータ内で PowerShell を開き、「WSL 内でコンパイル プロセスをホスト」できるようにしますlatexmk
。これにより、Tmux を介して複数の「バックグラウンド コンパイラ」をホストできるようになります。
latexmk
ネイティブ Windows 10 インストールを使用して MikTeX から呼び出すワンライナー コマンド:
powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode
使用方法: 次のように、長いコマンド行を WSL で使用されるシェルのエイリアスに割り当てます。
alias lmk='powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode'
次に、ローカライズされたディレクトリからmain.tex
、コマンドを発行して、lmk main.tex
LaTeX ドキュメントを連続モードでコンパイルします。コマンドに続くフラグのセットによりlatexmk
、後方/前方検索も有効になります。