設定ダイアログボックス


bg)以外のGUIフロントエンドの「設定」ボタンを押すと、「???の設定」(???はコマンド名)というダイアログボックスがオープンされます。対応するコマンド行プログラム次第で「設定」ダイアログボックスの内容は微妙に異なりますが、基本的な機能はほぼ同じです。次に示すのは、「設定」ダイアログボックスのなかでもっとも設定項目の多いawk)のダイアログとpipeline)のダイアログです。

 

 

 

設定」ダイアログはモードレスダイアログボックスですので、クローズしなくてもメインウィンドウを操作できます。このダイアログによってメインウィンドウが隠れてしまっても、このダイアログの隙間をマウスで指して右ボタンを押したときに表示されるメニューを使えば、メインウィンドウのプッシュボタンは操作できます。エクスプローラからこのダイアログにファイルをドラッグドロップすると、メインダイアログにドラッグドロップしたときと同様の動作になります。

結果出力用エディタ

このドロップダウンリストボックスは、すべてのGUIフロントエンドの「設定」ダイアログボックスに含まれています。ドロップダウンリストボックスに含まれているアイテムは、レジストリのHKEY_CURRENT_USER\Software\Longtail\cmdline\setting\editorsキーに格納されているテキストエディタコマンド行で、プログラム名だけではなく、コマンド行オプションが含まれている場合があります(たとえば、シェアウェアの秀丸(http://www.maruo.co.jp/)は、/bオプションを指定して起動すると、エディタ内のテキストを編集できない閲覧モードになります)。

リストボックスの設定によって、spawn.exeが起動するテキストエディタが決まります。spawn.exeは、/<NUM>オプション(<NUM>の部分は数値)によってテキストエディタを選択します。指定された数値を名前とする値を上記キーから探し、それをエディタのコマンド行として使います。

GUIフロントエンドの側でも、それぞれのレジストリキーでどのエディタを使っていたかを管理しています。GUIフロントエンドを実行していない間に、そのフロントエンドが使っていたエディタの値をレジストリから取り除いても、GUIフロントエンドは自分のエディタをレジストリに登録し直しますので、エディタが見つからなくて立ち往生することはありません。ただし、エディタ自体をアンインストールしてしまった場合には、正しく動作しなくなります。

リストボックスに表示されるエディタコマンド行のリストは、「エディタリスト」ボタンを押せば編集できます。詳しくは、このボタンを押したときに起動される(el)の説明を参照してください。なお、を実行している間、親プログラムは操作できなくなりますので注意してください。

スクリプトファイル編集用エディタ

ほかの名前になっている場合もありますが、入力ファイル以外に検索パターン、スクリプトなどのファイルを指定できるGUIフロントエンド(: awk: findstr: grep: perl: python: ruby: sed)の「設定」ダイアログボックスには、「結果出力用エディタ」リストボックスの下に同じ内容のリストボックスがもう1つあります。検索パターン、スクリプトなどのファイルは、「結果出力用エディタ」ではなく、ここで指定したエディタで編集されます。たとえば、の「設定」ダイアログボックスのこの部分でメモ帳を選択すると、メインダイアログ「スクリプト」タブの「-f: ファイル」リストボックスのアイテムをダブルクリックしたときにメモ帳が起動されます。

スクリプトパス

これも、入力ファイル以外に検索パターン、スクリプトなどのファイルを指定できるGUIフロントエンド(: awk: findstr: grep: perl: python: ruby: sed)のみに含まれている要素です。ver.2.0で導入されたもので、読み出し専用エディットボックスと、「選択」、「クリア」ボタンから構成されています。使わなくてもまったく問題はありませんが、次の説明を読んで、意味があると思ったら使ってみてください(作るのが大変で理解しにくい割に、地味な効果しかないのです)。

読み出し専用エディットボックスには、スクリプトパス指定用環境変数(awkならawkdirfindstrgrepならgrepdirperlならperldirpythonならpythondirrubyならrubydirsedならseddir)の内容が表示されます。これらの環境変数が定義されていなければ、エディットボックスには何も表示されません。スクリプトパス環境変数が設定されている場合、それぞれのフロントエンドのスクリプトパスは、その環境変数で表現されます。たとえば、でスクリプトファイルとしてc:\scripts\awk\test.awkを選択した場合、環境変数awkdirが設定されていなければ、スクリプトタブのフォルダ欄には、c:\scripts\awkと表示されますが、環境変数awkdirc:\scripts\awkに設定されていれば、フォルダ欄には、%AWKDIR%と表示されます。また、コマンド行でも、c:\scripts\awkとなっていた部分は、%AWKDIR%に変わります。コマンド行をpipeline)にコピーアンドペースト、ドラッグアンドドロップしたとしても、AWKDIR%を使った表示は変わりません。

これが役に立つと思われるのは、スクリプトを指定したコマンド行を.batファイルに保存して、その.batファイルを複数のマシンを使う場合です。たとえば、デスクトップとノートマシンを使っている人がいたとします。両方のマシンに同じスクリプトファイルが格納されているものの、デスクトップではc:\scripts\awkディレクトリ、ノートマシンではd:\scripts\awkディレクトリを使っていたとします。すると、awk -f c:\scripts\awk\test.awkというコマンド行を含む.batファイルは、デスクトップでは動作しますが、ノートマシンでは動作しません。しかし、環境変数awkdirとしてデスクトップではc:\scripts\awk、ノートマシンではd:\scripts\awkをセットしていて、.batファイル内のコマンド行がawk -f %AWKDIR%\test.awkになっていれば、どちらのマシンでも同じ.batファイルを使うことができます。

選択」、「クリア」は、フロントエンド内でスクリプトパス環境変数を設定するためのボタンです。スクリプトパス環境変数が設定されていない状態から新しくスクリプト環境変数を設定した場合、GUIフロントエンドですでに指定されているスクリプトのパスのなかにスクリプト環境変数が含まれていたら、その部分は%<環境変数名>%に置き換わります(設定内容を変えただけであれば、スクリプトのパス指定は変わりませんが、使われるスクリプトは別のディレクトリに格納されている別のスクリプトに変わります)。スクリプトパス環境変数が設定されている状態で「クリア」を選択すると、GUIフロントエンドでスクリプトパス環境変数付きで指定されていたスクリプトパスは、スクリプトパス環境変数なしの表現に書き換えられます(たとえば、c:\scripts\awkになっていたawkdirをクリアすると、%AWKDIR%\test.awkc:\scripts\awk\test.awkになります)。

なお、の「環境変数設定」ダイアログは、それぞれのスクリプトパス環境変数を操作しようとすると、次のようなエラーメッセージを表示しますが、の「環境変数設定」ダイアログはスクリプトパス環境変数を特別扱いしません。

 

 

コマンド行ツールのパス

途中のチェックボックス群を飛ばして、先に「OK」「キャンセル」プッシュボタンのすぐ上にあるこの設定について説明します。「コマンド行ツールのパス」というラベルの右に「選択」プッシュボタン、下に読み出し専用エディットボックスがあります。エディットボックスの内容は、起動されるコマンド行ツールのパスで、メインダイアログ下部のコマンド行の最初の部分になります。「選択」プッシュボタンを押すと、標準の「ファイルを開く」ダイアログボックスがオープンされますので、適切なプログラムを選択し、「OK」ボタンを押して「ファイルを開く」ダイアログボックスをクローズすると、エディットボックスにそのプログラムのフルパスが表示されます。これを利用すれば、1つのGUIフロントエンドでさまざまなコマンド行ツールを起動できます。実際、head)からtail.exeを起動することもできます。ただし、わざわざ紛らわしいことをするのは、間違いのもとですから避けた方がよいでしょう。

選択」ボタンの右の「デフォルト」ボタンを押すと、エディットボックスにはデフォルトのコマンド名が表示されます。たとえば、cat)ならcatならheadになります。

awk)とgrep)には、エディットボックスの下に「コマンド名のデフォルト」というラベルの付けられたドロップダウンリストボックスが含まれています。grepにはegrepfgrepという別名があり、名前の違いによって検索パターンのデフォルトの処理方法が変わりますし、awkには、単純にさまざまな実装があり、さまざまな名前が付けられていますので、このような機能を付けました。このドロップダウンリストを使うと、デフォルトのコマンド名を変更できます。もちろん、新しいデフォルトコマンド名を選択すると、それがエディットボックスに表示されます。デフォルトコマンド名を変更すると、メイン、「設定」ダイアログボックスのタイトルバーに表示されるコマンド名も変わります。

チェックボックス群

設定」ダイアログボックスには、上記のコントロールと「OK」、「キャンセル」ボタンのほかに、いくつかのチェックボックスが含まれています。ここではそれらについて説明します。

ファイルをドロップしたときにコマンドをただちに実行

(fortune)以外のすべてのGUIフロントエンドに含まれているオプションです。これをチェックすると、エクスプローラからファイルをドロップしたときにただちにコマンドが実行されます。チェックしなければ、入力ファイルを置き換えるだけで、コマンドは実行されません。

フォルダをドロップしたときにただちにディレクトリ移動

diff(dir)(dir)(ls)(randstr)(sort)(uniq)以外のGUIフロントエンドに含まれているオプションです。これをチェックすると、エクスプローラからフォルダをドロップしたときに、ただちにディレクトリ移動が行われます。チェックしなければ、ディレクトリを移動してもよいかどうかを尋ねるメッセージボックスが表示されます。

 

 

出力の先頭にプロンプトとコマンド行を付加

ver.2.2.0.0以降のすべてのGUIフロントエンドに含まれているオプションです。これをチェックすると、spawn.exeを起動するときに、/lオプションが指定されます。Windows 9x/Meなら出力ファイルの末尾、Windows NT/2000/XPなら標準出力のリダイレクト先の一時ファイルの先頭に、MS-DOSプロンプト文字列の'>'と実行したコマンド行が挿入されます。

 

C:\> cat

 

出力の末尾にコマンド行とカレントディレクトリを付加

すべてのGUIフロントエンドに含まれているオプションです。これをチェックすると、spawn.exeを起動するときに、/dオプションが指定されます。Windows 9x/Meなら出力ファイルの末尾、Windows NT/2000/XPなら標準出力のリダイレクト先の一時ファイルの末尾に、実行したコマンド行、カレントディレクトリ、コマンド実行開始/終了時間、spawnの内部で使われているコマンド行のサイズを示す次の4行が追加されます。

 

cat  (in C:\)

From Tue, 14 Aug 2001 15:27:30 +0900(東京 (標準時))

To   Tue, 14 Aug 2001 15:27:30 +0900(東京 (標準時))

119 bytes

 

\ではなく/でディレクトリを区切る

アイコンが青、黄緑(: dumpbinを除く)、赤のGUIフロントエンド、つまりcygwinPCKに含まれるコマンド行プログラムに対応するGUIフロントエンドに含まれているオプションです。これをチェックすると、そのGUIフロントエンドで「ファイルを開く」ダイアログボックスを使って選択したファイル名(コマンド名を除く)のディレクトリの区切り子が「/」になります。PCKコマンド行プログラム(及び、CC++で書かれたごく一般的なコマンド行プログラム)は、ディレクトリの区切り子がどちらであっても動作します。cygwinツールでは、「\」は特殊文字の特殊な意味を消す効果を持つ特殊文字で、ディレクトリの区切り子としては使えませんので、「/」を使うようにしてください。

pipeline)では「入出力ファイルのディレクトリの区切り子を/にする」という表現になっています。これは、たとえばパイプラインのなかにperlrubyのスクリプトファイル名や(cmdline)で直接指定したファイル名が含まれていても、このオプションではそれらまで変更することはできないからです(しかし、のメインウィンドウから: perl: rubyなどのフロントエンドを起動すれば変更できます)。

また、では、「ドロップされたファイルのディレクトリ区切り子を/にする」という表現になっています。つまり、直接入力された内容はこのボタンがチェックされていても、書き換えられないということです。

MS-DOS風の短いファイル名で入力ファイルを指定する

アイコンが青、黄緑(: dumpbinを除く)、赤のGUIフロントエンド、つまりcygwinPCKに含まれるコマンド行プログラムに対応するGUIフロントエンドに含まれているオプションです。これをチェックすると、「入力」グループボックスの「ファイル」ボタンで選択した入力ファイルの名前が8.3形式になります。コマンド行プログラムとしてMS-DOS時代の16ビットプログラムを使うときには、これをチェックする必要があります。

(cmdline)では、「ドロップされたファイルをMS-DOS風の短い名前に変換」という表現になっています。つまり、直接入力された内容はこのボタンがチェックされていても、書き換えられないということです。

標準出力のためにエディタを起動しない

これをチェックすると、spawn.exeを起動するときに、/nオプションが指定され、標準出力にあたる一時ファイル(あるいはリダイレクト先のファイル)が表示されなくなります。このオプションが指定されていても、コマンドが標準エラー出力に何らかの出力をした場合(Windows NT/2000/XPの場合は、コマンドの終了ステータスが0以外の場合)には、標準エラー出力に当たる一時ファイル(Windows 9x/Me)や標準エラー出力がリダイレクトされているファイル(Windows NT/2000/XP)は、表示されます。しかし、このオプションが指定されているときにコマンド行プログラムが暴走しても、ユーザー自身がタスクリストを表示しない限り、そのことがわからないので注意が必要です。

オプションのなかにファイル名も含める

awk)のみに含まれているオプションです。通常、pipeline)に運ばれるコマンド行や「オプション保存」ボタンで保存されるオプションには、入力ファイル名は含まれませんが、これをチェックすると、入力ファイル名がオプションの一部として扱われます。

のみの設定項目

(pipeline)の「設定」ダイアログには、ほかのフロントエンドにはない設定が5つあります。

環境変数PATHの冒頭に挿入するディレクトリ」は、が起動時に環境変数PATHに挿入するディレクトリ(複数指定可能)の設定です。環境変数PATHで指定されているディレクトリに含まれるプログラムは、パスを指定しなくても、プログラム名を指定するだけで実行できます。の「起動ボックス」から起動されるプログラムは、起動直後のの環境変数設定を継承しますので、ここで各種コマンド行プログラムを格納しているディレクトリを指定しておけば、GUIフロントエンドに対応するコマンド行プログラムの設定が楽になります。インストール直後は、c:\program files\longtail\cmdlineだけが指定されている状態になっています。このディレクトリを取り除くと、アイコンの色がGUIフロントエンドがコマンド行プログラムを起動できなくなりますので注意してください(もちろん、別の方法で環境変数PATHを設定していれば問題はありません。環境変数PATHなどということを考えたくない方は、この部分をいじらないようにしてくださいということです)。ディレクトリを一切指定していなければ、は環境変数PATHに手を付けません。この設定は、変更後、すぐに有効になります。

GUIフロントエンドの初期ディレクトリ」は、の起動ボックスから起動されるプログラムの初期作業ディレクトリについての設定です。「固定」を選択すると、の作業ディレクトリがどこであれ、右の「Dir選択」ボタンで選択し、下のエディットボックスに表示されているディレクトリが初期作業ディレクトリとして使われます。「pipelineに合わせる」を選択すると、の作業ディレクトリがそのまま起動されたプログラムの初期作業ディレクトリになります。

起動時に起動ボックスをオープンしない」インストール直後のは、起動時に他のGUIプログラムを起動するための「起動ボックス」を自動的にオープンするようになっていますが、これをチェックすると、メインダイアログだけをオープンするようになります。

ロード/貼り付け時にディレクトリ移動しない」は、バッチファイルをロードするときやドラッグアンドドロップ、コピーアンドペーストでコマンド行情報を受け付けるときにそのなかに記述されているディレクトリに移動するかどうかを指定します。チェックされていれば、作業ディレクトリ情報は無視されます。

ロード/貼り付け時にメイン入力を変更しない」は、入力情報付きのコマンド行情報をロード、ドラッグアンドドロップ、コピーアンドペーストで受け付けるときに、その入力情報を無視するかどうかを指定します。これがチェックされていても、「補助入力」ボタンで表示されるダイアログのための入力情報は無視されません。

のみの設定項目

(cmdline)だけには、保存するコマンド履歴の数の設定があります。で実行されたコマンド行は、ここで指定された数だけレジストリで保存されます。1から100までの値を指定できます。

のみの設定としては、「「送る」、空欄ドロップでフルパス名を使う」というものもあります。これは、自身のコマンド行引数としてパス付きのファイル名を指定したときや、「コマンド行」コンボボックスが空欄になっているときにエクスプローラからファイルをドラッグアンドドロップしたときに、「コマンド行」コンボボックスにフルパス名を表示するか、パス抜きのファイル名を表示するかを指定します。このオプションをオンにすると、フルパス名が表示されます。