For Gauche 0.9.15Search (procedure/syntax/module):

Next: , Previous: , Up: ライブラリモジュール - Gauche拡張モジュール   [Contents][Index]

9.14 gauche.interactive - インタラクティブセッション

Module: gauche.interactive

インタラクティブセッションで便利なユーティリティ手続きを提供します。

goshをインタラクティブモードで起動した場合、 このモジュールは自動的にロードされます。

また、このモジュールはgauche.reload (gauche.reload - モジュールの再ロード参照)で定義される 手続きに対してautoloadを設定し、それらの手続きが インタラクティブな開発時にデフォルトで使えるようにします。

Macro: apropos pattern :optional module

{gauche.interactive} 名前がpatternにマッチするような定義された変数のリストを表示します。 moduleにモジュールオブジェクトまたはモジュール名を与えた場合は、 そのモジュール内で定義されている変数のみが表示されます。moduleが 省略された場合は、カレントモジュールから「見える」変数が全て表示されます。

patternはシンボルか正規表現オブジェクトでなければなりません。 シンボルの場合、そのシンボル名を部分文字列として名前に含むような変数が リストされます。正規表現オブジェクトの場合は、その正規表現にマッチする 名前を持つ変数がリストされます。

いくつか例を示します。

;; "string"を名前に含む変数を表示
(apropos 'string)

;; srfi.14モジュールの中のみを検索
(apropos 'char 'srfi.14)
Generic Function: describe :optional obj
Generic Function: d :optional obj

{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)
Function: info symbol

{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ファイルを(もしあれば)読みます。

Function: info-search regexp

{gauche.interactive} regexpにマッチするinfoのエントリをリストします。 infoファイルがどこから読まれるかについては上のinfoの説明を参照してください。

Function: ed filename-or-procedure :key editor load-after

{gauche.interactive} 外部エディタを起動し、与えられた名前のファイル、もしくは与えられた手続きの定義がある ファイルを開きます。後者については、与えられた手続きを source-locationに渡して定義箇所を調べます(デバッグ補助参照)。 定義箇所がわからなければファイルは開かれません。

起動するエディタの名前は次の順序で決定されます。

  1. キーワード引数editor
  2. userモジュール中の変数*editor*の値。 これは、.gaucherc内で設定しておくのが便利です。
  3. 環境変数GAUCHE_EDITORの値
  4. 環境変数EDITORの値

上記のどの値も定義されていないか#fなら、 手続きedはユーザにエディタ名を入力するように促します。

エディタの名前がわかったら、それが子プロセスとして次の形式で実行されます。

EDITOR +lineno filename

linenoは整数の行番号で、1が先頭行です。エディタは指定された行の頭に カーソルを移動することが期待されます。

エディタプロセスが終了したら、edはファイルが更新されたかどうかを調べ、 更新された場合はload-after引数の値によってそのファイルをロードするかどうかを 決定します。load-after引数の値は以下のいずれかです。

#t

ファイルが更新されていれば自動的にロード

#f

ファイルをロードしない

ask

シンボルaskの場合は、ロードすべきかどうかユーザに尋ねる。 これがデフォルトの動作です。


Next: , Previous: , Up: ライブラリモジュール - Gauche拡張モジュール   [Contents][Index]


For Gauche 0.9.15Search (procedure/syntax/module):