Windows版GvimでPowerShellを呼び出す.
2013/07/23
Windows版GvimでPowerShellを呼び出す
設定ファイル(“vimrc等”)に下記を追加すると,vim上で「:!プログラム名」とした際に起動するシェルがコマンドプロンプト(cmd.exe)から
Windows PowerShellに変更できる.
set shell=powershell.exePowerShellはコマンドプロンプトよりも高機能でパワフル*1なので,運用の幅が広がる.
呼び出したPowerShell上で別プロセスとしてプログラムを実行する
TeXのコンパイルは結構な時間が掛かるため,VimでTeXを編集しているときに,普通にVimからPowerShellを呼び出し,
その上でプログラム(実行用バッチファイル)を実行しコンパイルすると,
数十秒から最悪数分間も処理で編集作業が出来なくなってしまう.
PowerShellでは“Start-Process”というコマンドで,プログラムを実行中のシェルとは別のプロセスで実行できる.
これを利用すればこのロスをなくせる.Vimのコマンドモード上で以下を実行すれば良い.
:!Start-Process -FilePath .\lualatex-set.bat“lualatex-set.bat”の中身は以下の通りである.
“jlreq-text.*”はバッチファイルと同じフォルダにある編集中のTeX関連ファイルたちである.
このように本文のほかに索引や参考文献も組み込み,
各カウンタの数字が正しく出力されるまで複数回コンパイルすると,相応の時間が掛かってしまう.
lualatex.exe jlreq-text.tex mendex.exe -s jlreq-text.ist jlreq-text.idx pbibtex.exe jlreq-text lualatex.exe jlreq-text.tex lualatex.exe jlreq-text.texさらに発展したものとして,実行される別プロセスのウィンドウをフォーカスしない(非選択状態)で実行するオプションは以下.
:!Start-Process {.\lualatex-set.bat} -WindowStyle Minimized