Next: gauche.lazy
- 遅延シーケンスユーティリティ, Previous: gauche.hook
- フック, Up: ライブラリモジュール - Gauche拡張モジュール [Contents][Index]
gauche.interactive
- インタラクティブセッションインタラクティブセッションで便利なユーティリティ手続きを提供します。
gosh
をインタラクティブモードで起動した場合、
このモジュールは自動的にロードされます。
また、このモジュールはgauche.reload
(gauche.reload
- モジュールの再ロード参照)で定義される
手続きに対してautoloadを設定し、それらの手続きが
インタラクティブな開発時にデフォルトで使えるようにします。
{gauche.interactive} 名前がpatternにマッチするような定義された変数のリストを表示します。 moduleにモジュールオブジェクトまたはモジュール名を与えた場合は、 そのモジュール内で定義されている変数のみが表示されます。moduleが 省略された場合は、カレントモジュールから「見える」変数が全て表示されます。
patternはシンボルか正規表現オブジェクトでなければなりません。 シンボルの場合、そのシンボル名を部分文字列として名前に含むような変数が リストされます。正規表現オブジェクトの場合は、その正規表現にマッチする 名前を持つ変数がリストされます。
いくつか例を示します。
;; "string"を名前に含む変数を表示 (apropos 'string) ;; srfi.14モジュールの中のみを検索 (apropos 'char 'srfi.14)
{gauche.interactive} Schemeオブジェクトobjの詳細情報を表示します。 既定メソッドはobjのクラスを表示し、さらにobjがスロットを 持っていればその名前と内容をリストします。 このメソッドをスペシャライズすることによりクラス毎に表示をカスタマイズできます。 いくつかの組み込み型は既にメソッドを持っています (下の例で整数がどのように表示されるか見てください)。
objが省略された場合は、*1
に束縛されている、直前のREPLの結果が
使われます。(REPLでの開発参照)
gosh> (sys-stat "Makefile") #<<sys-stat> 0x1e7de60> gosh> (d) #<<sys-stat> 0x1e7de60> is an instance of class <sys-stat> slots: type : regular perm : 436 mode : 33204 ino : 3242280 dev : 2097 rdev : 0 nlink : 1 uid : 500 gid : 500 size : 19894 atime : 1435379061 mtime : 1432954340 ctime : 1432954340 gosh> (d 1432954340) 1432954340 is an instance of class <integer> (#x556925e4, ~ 1.4Gi, 2015-05-30T02:52:20Z as unix-time)
{gauche.interactive}
Gaucheのinfoドキュメント中から、
symbolで指定される手続き、構文要素、モジュールもしくはクラスの
エントリを表示します。
もし環境変数INFOPATH
が定義されていればそこに
示されるディレクトリ中から探され、そうでなければgosh
のライブラリディレクトリ
から推測されるディレクトリ中から探されます。
infoドキュメントが見付からなかった場合はエラーとなります。
つまり、この手続きはinfoファイルがインストールされていないと動作しません。
もしsymbolに完全に一致するエントリが見つからなかった場合、 類似するエントリがあればそれらがリストされます:
gosh> (info 'stirng) There is no entry for stirng. Did you mean: string> string? string= string< string :string
(パターンにマッチするエントリを探したい場合は下のinfo-search
を見てください)
現在の出力ポートが端末である場合、infoドキュメントの該当ページは
ページングプログラムを用いて表示されます。環境変数PAGER
が指定されていれば
それを用い、そうでなければコマンドサーチパスからless
及びmore
を
この順で探します。いずれも見付からなかった場合や、出力ポートが端末では
ない場合には、単にページがそのまま出力されます。
この手続きのセッション中での最初の呼び出しは、infoファイルをパーズするために 多少時間がかかります。
註: less
をページャに使う場合、less
がutf-8文字を扱えるように
設定してください (例えばLESSCHARSET
環境変数をUTF-8
にする)。
そうでないと画面にエスケープされた文字が表示されて見づらいです。
註: gosh
を-ftest
オプションをつけてビルドツリー内で起動した場合、
info
はビルドツリー内のinfoファイルを(もしあれば)読みます。
{gauche.interactive}
regexpにマッチするinfoのエントリをリストします。
infoファイルがどこから読まれるかについては上のinfo
の説明を参照してください。
{gauche.interactive}
外部エディタを起動し、与えられた名前のファイル、もしくは与えられた手続きの定義がある
ファイルを開きます。後者については、与えられた手続きを
source-location
に渡して定義箇所を調べます(デバッグ補助参照)。
定義箇所がわからなければファイルは開かれません。
起動するエディタの名前は次の順序で決定されます。
user
モジュール中の変数*editor*
の値。
これは、.gaucherc
内で設定しておくのが便利です。
GAUCHE_EDITOR
の値
EDITOR
の値
上記のどの値も定義されていないか#f
なら、
手続きed
はユーザにエディタ名を入力するように促します。
エディタの名前がわかったら、それが子プロセスとして次の形式で実行されます。
EDITOR +lineno filename
linenoは整数の行番号で、1が先頭行です。エディタは指定された行の頭に カーソルを移動することが期待されます。
エディタプロセスが終了したら、ed
はファイルが更新されたかどうかを調べ、
更新された場合はload-after引数の値によってそのファイルをロードするかどうかを
決定します。load-after引数の値は以下のいずれかです。
#t
ファイルが更新されていれば自動的にロード
#f
ファイルをロードしない
ask
シンボルask
の場合は、ロードすべきかどうかユーザに尋ねる。
これがデフォルトの動作です。
Next: gauche.lazy
- 遅延シーケンスユーティリティ, Previous: gauche.hook
- フック, Up: ライブラリモジュール - Gauche拡張モジュール [Contents][Index]