Windows NT/2000/XP のコマンドプロンプトを使い慣れている人(ってあまりい
ないと思うが)にとっても便利なのが START というコマンド。これ、指定した
ものをダブルクリックしたのと同じ効果があるのだ。start winword.exe
な
ら winword.exe が起動するし(あまりありがたみがないが)start paper.ps
とすれば paper.ps のビューワが立ち上がる(登録してあれば)。start .
とすると、カレントディレクトリのエクスプローラが起動するという寸法だ。こ
れを使うと、コマンドプロンプト世界とGUI世界を自由に行き来できるようにな
る。タブ補完も有効にできるので(cmd /?
で説明が出る)、実はけっこう
便利なのだ。
しかし、Cygwin の bash プロンプ トから使おうと思うとちょっとむずかしい。というのは、START が cmd.exe の 内部コマンドであるうえに、(あたりまえだが)UNIX パス名を受け付けないの で、Windows パス名で (しかもバックスラッシュを倍にして) 指定しなければい けないのである。当然 bash 側のタブ補完など使えない。不便である。
ということで、/usr/local/bin/start という簡単なスクリプトをおく。中では、 Windows パス名への変換をしてから cmd.exe を起動し、内部コマンドの start を叩く。なんと便利。
#!/bin/sh `cygpath -S -u`/cmd /c start `echo "$*" | xargs -n 1 cygpath -w`
これさえあれば、bash プロンプトから TeX のコンパイルをしてビューワを起動
するとか、テキストエディタを立ち上げるとか、なんでもやり放題である。しか
もワイルドカードも使えるから、dvi がひとつしかなければ start *.dvi
で大丈夫。
エディタも登録する。普段は Dana を使っているので /usr/local/bin/dana を 作っておけば大丈夫。
#!/bin/sh /cygdrive/c/Program\ Files/RimArts/Dana/Dana.exe \ `echo "$*" | xargs -n 1 cygpath -w`
もうこれなしでは Windows が使えない体になってしまった。
※ 2004/2/26 追記: cygwin には cygstart という、まったく同じ目的のプログラムがついていることが発覚しました。こっちのほうがよっぽど便利です。まあ、cygpath の使い方の例と思ってみてください。