Viivi の引数コマンド < カスタマイズ方法 < Viiviの小部屋 < 入り口 / Entrance


Viivi の引数コマンド

引数コマンドとは?

一般に,プログラムを端末窓/CMD窓から起動する際にプログラム名に続けて与える文字列群のことを 「コマンドラインオプション (command-line options)」などと呼びます.
Viivi ではこれらを積極的に 「引数として Viivi に与える命令」であると解釈し 特に「引数コマンド (argument commands)」と呼ぶことにします.
引数コマンドは Viivi に順次作業させる内容 (各種属性の設定,入出力の対象の指定など) を指示するために使います.

引数コマンドを与える方法

(1) 直接コマンドライン上に羅列して与える方法

たとえば 端末窓/CMD 窓の上で

	$ viivi -K -E 1 -callcc -o result.out -i sheepAndWolf.scm
(ただし $ は Unix のプロンプト )
という文字列を入力して Viivi を立ち上げた場合, Viivi プログラムの名前である viivi のあとに続く
	-K
	-E 1
	-callcc
	-o result.out
	-i sheepAndWolf.scm
のそれぞれが引数コマンド (とそのパラメタ) です.

各引数コマンドは必ずハイフン「 - 」から始まり,そのあとに 1 文字以上の文字列が続きます.
コマンドの種類によって,単独で用いられるものとパラメタ 1 個を取るものとがあります.
それぞれの引数コマンドやパラメタは空白文字で区切っておかなければなりません.
引数コマンドを複数個与えると, Viivi は与えられた順に引数コマンドを実行します.

(2) 引数コマンドスクリプトファイルを指定して与える方法

引数コマンド列が長くなると, Viivi を起動するたびにコマンドライン上に記述するのが面倒になります.
また,一部の OS/shell ではコマンドライン文字列の文字数に制限があり, 長い引数コマンド列をタイプすることすらできない場合があります.
Viivi に簡単かつ確実に引数コマンドを与えるために, ファイルを用いて引数コマンド列を与える方法を用意しました.
まず,引数コマンド列をファイルの中に書いてください.
つぎに, 引数コマンド -a を用いてそのファイルを Viivi に渡します.

たとえば,引数コマンド列を含むファイル myArgCmds.vacs を指定するには次のように入力します:

	$ viivi -K -a myArgCmds.vacs		カーネルモードで使う場合
	$ viivi -G -a myArgCmds.vacs		IDE モードで使う場合

myArgCmds.vacs のようなファイルを 「Viivi 引数コマンドスクリプトファイル (Viivi argument-command script file)」と呼びます.
このファイルの拡張子 .vacs は 「Viivi argument-command script」の名前の頭文字を取っています.

この方法はカーネルモードでも IDE モードでも使えますから, ユーザインタフェースモードを指定する引数コマンド -K および -G は引数コマンドスクリプトファイル内に含めないようにしてください.

ファイルの書式は自由形式です.
途中に空白文字や改行を好きなだけ入れてかまいません.
また, # 文字から行末まではコメントとして無視されます.

次の3つの引数コマンドスクリプトファイルは互いに等価です.
見やすいようにファイル名と行番号をつけて表示してあります.
たとえばファイル myArgCmdsA.vacs の中身は 「-E 1 -callcc -o result.out -i sheepAndWolf.scm」 だけです.

:::::::::::::::::::::
:: myArgCmdsA.vacs ::
:::::::::::::::::::::
   1: -E 1 -callcc -o result.out -i sheepAndWolf.scm
   2: 

:::::::::::::::::::::
:: myArgCmdsB.vacs ::
:::::::::::::::::::::
   1: -E 1
   2: -callcc
   3: -o result.out
   4: -i sheepAndWolf.scm
   5: 

:::::::::::::::::::::
:: myArgCmdsC.vacs ::
:::::::::::::::::::::
   1: # myArgCmdsC.vacs
   2: # my argument-command script version C
   3: # 引数コマンドスクリプトの例
   4: #
   5: # 作者: ilma
   6: # 日時: 2022/02/22 22:22:22
   7: 
   8:     ########
   9:     # 準備 #
  10:     ########
  11:     # eval 呼び出しは 1 引数とする
  12:     -E 1
  13:     # call/cc シンボルを使えるようにする
  14:     -callcc     # call-with-current-continuation
  15: 
  16:     ################
  17:     # 結果の出力先 #
  18:     ################
  19:     -o result.out
  20: 
  21:     ################
  22:     # ソースコード #
  23:     ################
  24:     # 「羊と狼」問題
  25:     -i sheepAndWolf.scm
  26: 
  27: # end of file
  28: 

Viivi を IDE モードで

	$ viivi -G -E 1 -callcc -o result.out -i sheepAndWolf.scm
のように起動した場合には,引数コマンドが自動的に解析されて Viivi IDE の引数コマンド窓 #<argument-command-window> 内に myArgCmdsB.vacs の形式で表示されます.

(3) 引数コマンド窓内に手動で与える方法

Viivi IDE が初期状態または終了状態にあれば, ユーザが引数コマンド窓 #<argument-command-window> の中に手動で引数コマンドを与えることができます.
ひとつめは, 引数コマンド窓 #<argument-command-window> の中の文字列をユーザが直接編集する方法です.
もうひとつは, 引数コマンド窓 #<argument-command-window> 上のポップアップメニューから, 外部の引数コマンドスクリプトファイルを読み込ませる方法です.

Viivi 引数コマンドではないもの

Viivi の起動ファイル内に与えられるような 「JVM に対するコマンドラインオプション」
(たとえば, メモリ容量の指定

	-Xss512m -Xms1024m -Xmx2048m
など) は
	-jar Viivi.jar
よりも前に行われる JVM の構築に対する指定です.
これらは Viivi への直接の命令ではありませんので Viivi の引数コマンド からは除外し, 通常通り 「JVM に対するコマンドラインオプション」 と呼ぶことにします.

引数コマンドが処理されるタイミング

Viivi を起動したときの処理は

  1. JVM に対するコマンドラインオプション
  2. すべての設定ファイル (viivi.vcnfviivi.ide.vcnf など) の内容
  3. 引数コマンド
の順に行われます.

1. と 2. の処理は Viivi を起動したときに一度だけしか行われません.
Viivi IDE の中で引数コマンドを最初からくりかえすときは, 3. の引数コマンドだけがくりかえし処理されます.

引数コマンド一覧

すべての引数コマンドはここにまとめてあります.

	Viivi 引数コマンド一覧


Viivi の引数コマンド < カスタマイズ方法 < Viiviの小部屋 < 入り口 / Entrance


ご連絡方法

2022/03/02 開設
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.