window(1) FreeBSD 一般コマンドマニュアル

window

前のページ 上に戻る 次のページ

window




解説

     window は、 ASCII 端末上でウィンドウ環境を実装します。

     ウィンドウとは物理的な端末スクリーンの中の部分的な長方形部分を指し、ここ
     をプロセスの集合が利用します。その大きさと位置はユーザがいつでも変更でき
     ます。プロセスは標準入力、標準出力、標準エラー出力を通して端末と通信する
     通常の方法と同じ方法で、そのウィンドウと通信します。ウィンドウプログラム
     はそのウィンドウに対する入力と出力のリダイレクトに関する細かい処理を行い
     ます。どんな時でも、 1 つのウィンドウだけがキーボードからの入力を受けるこ
     とが出来ますが、全てのウィンドウが同時にディスプレイへの出力を送ることが
     可能です。

     window が立ち上がった時、ユーザのホームディレクトリにある .windowrc 内の
     コマンドが実行されます。もしこのファイルが存在しない時は、デフォルトとし
     て同じ大きさのウィンドウが 2 つ作成されます。

     コマンドラインオプションには以下のものがあります。

     -t          terse モードをオンにします (以下の terse コマンドを参照)。

     -f          高速モードです。スタートアップ動作は何もしません。

     -d          .windowrc を無視する代わりに 2 つのデフォルトウィンドウを作成
                 します。

     -e escape-char
                 エスケープ文字を escape-char にします。 escape-char は文字 1
                 つか、もしくは ^X (control-X ) のような形式です (X はどんな文
                 字でも構いません)。

     -c command  command をロングコマンド(以下参照)として最初に実行します。

     ウィンドウはオーバラップ可能で、枠が必要です。各ウィンドウには、``1'' か
     ら ``9'' の数字のうちの一つの名前が付いています。この一文字の識別子は、ユ
     ーザが定義できるラベル文字と同じように、ウィンドウのフレームの上の辺に表
     示されます。ウィンドウは フォアグラウンドにあるように設計されています。
     フォアグランドウィンドウは、普通の他のフォアグラウンドではないウィンドウ
     よりもつねに上にあります。このウィンドウより上になるのは、他のフォアグラ
     ンドウィンドウだけです。ウィンドウは、端末画面の辺内に完全に入っている必
     要はありません。したがって、(画面よりも大きくても良い)大きいウィンドウ
     は、その全画面の一部分だけが表示されるでしょう。

     各ウィンドウは、カーソルと制御機能を持っています。最も知的な端末操作、す
     なわち行や文字消去や挿入が提供されています。下線を引いたり反転表示等の
     ディスプレイモードは、端末によって提供されている場合には、利用可能です。
     更に、複数ページ分のメモリがある端末と同じように、各ウィンドウはウィンド
     ウ画面に表示されるよりも多くの行を保持できるテキストバッファを持っていま
     す。

   B>プB>ロB>セB>スB>環B>境
     新しく作成されたウィンドウでは、呼び出されたウィンドウからプロセス環境を
     二つの状態は、会話モードとコマンドモードです。会話モードでは、端末の実際
     のカーソルは、特定のウィンドウのカーソル位置に位置します。この特定のウィ
     ンドウはカレントウィンドウと呼ばれます。そして、キーボードからの入力は、
     そのウィンドウにあるプロセスに送られます。カレントウィンドウは、他のウィ
     ンドウがフォアグランドにある時を除いて、いつも他のウィンドウよりも上にあ
     ります。更に、その識別子とラベルは反転表示で強調されています。

     window のエスケープ文字 (通常は、 ^P です) を入力することで、会話モードか
     らコマンドモードへ移行します。コマンドモードでは、端末画面の一番上の行は
     コマンドプロンプトウィンドウに変わり、 window はキーボードからの入力を
     ウィンドウを操作するコマンドであると解釈します。

     二つの種類のコマンドがあります。短いコマンドは普通 1文字ないし 2文字から
     構成されます。長いコマンドはコマンドウィンドウ (以下の ``:'' コマンドを参
     照) で入力される文字列もしくは、ファイル (以下の source 参照) から読み込
     まれます。

   B>短B>いB>コB>マB>ンB>ド
     以下では、 # は、ウィンドウ 1 から 9 に結びつけられた、数字の ``1'' から
     ``9'' のひとつを表現します。 ^X は、 control-X を意味します。ここで、 X
     は任意の文字です。特に、 ^^ は、 control-^ です。 escape はエスケープキー
     もしくは、 ^[ です。

     #       ウィンドウ # をカレントウィンドウとして選択し、会話モードに戻りま
             す。

     %#      ウィンドウ # を選択しますが、コマンドモードのままです。

     ^^      一つ前のウィンドウを選択し、会話モードに戻ります。これは、二つの
             ウィンドウの間を交互に移動する時に便利です。

     escape  会話モードに戻ります。

     ^P      会話モードに戻り、現在のウィンドウに ^P を書き込みます。したがっ
             て、会話モード中で二つの ^P を入力することで、一つを現在のウィン
             ドウに送ることができます。 window のエスケープを別の文字に変更し
             ている場合には、その文字がここでいう ^P と同じ動作をします。

     ?       コマンドの短いまとめを表示します。

     ^L      画面を再描画します。

     q       window を終了します。確認が行われます。

     ^Z      window を中断します。

     w       新しいウィンドウを作成します。ユーザはウィンドウの左上の場所と右
             下の場所を指定します。カーソルが画面上に表示され、 ``h'', ``j'',
             ``k'', ``l'' キーでカーソルをそれぞれ 左 , 下 , 上 , 右に移動しま
             す。 ``H'', ``J'', ``K'', ``L'' キーでは、カーソルはそれぞれの方
             向の画面の限界まで移動します。移動キーの前に数字を入力すること
             で、移動を数字の回数だけ繰り返します。リターンでカーソル位置を
             く扱うべきで、そうであれば問題は起こりません。

     m#      ウィンドウ # を別の位置に移動します。ウィンドウの形をした箱が新し
             い位置を示すために画面に表示され、 w コマンドで使われたのと同じよ
             うなキーで箱の位置を指定できます。ウィンドウは一部が画面の外にで
             ても構いません。

     M#      ウィンドウ # を以前の位置に動かします。

     s#      ウィンドウ # の大きさを変更します。ウィンドウの新しい右下の角を指
             定する必要があります。新しいウィンドウの大きさを示すために、箱が
             書かれます。 wm コマンドで使われたのと同じキーが位置を入力す
             るために使われます。

     S#      ウィンドウ # を以前の大きさに変更します。

     ^Y      カレントウィンドウを一行上にスクロールします。

     ^E      カレントウィンドウを一行下にスクロールします。

     ^U      カレントウィンドウを画面の半分上にスクロールします。

     ^D      カレントウィンドウを画面の半分下にスクロールします。

     ^B      カレントウィンドウを一画面分、上にスクロールします。

     ^F      カレントウィンドウを一画面分、下にスクロールします。

     h       カレントウィンドウのカーソルを一カラム左に動かします。

     j       カレントウィンドウのカーソルを一行下に動かします。

     k       カレントウィンドウのカーソルを一行上に動かします。

     l       カレントウィンドウのカーソルを一カラム右に動かします。

     y       ヤンクします。ユーザはカレントウィンドウの 2点を指定します。この
             2点で示される内容がヤンクバッファに保存されます。

     p       プットです。ヤンクバッファの内容を、現在のウィンドウに入力として
             書き込みます。

     ^S      カレントウィンドウの出力を停止します。

     ^Q      カレントウィンドウの出力を開始します。

     :       長いコマンドとして実行する行を入力します。通常の行編集文字 (エス
             ケープ文字、単語の消去、行の消去) が提供されます。

   B>長B>いB>コB>マB>ンB>ド
     ロングコマンドはプログラム言語の様に解釈される文の列です。この文法は C 言
     語に似ています。数字や文字列の表現や変数が、条件分岐と同じように提供され
     ます。

     文字 ``#'' は、行末までのコメントの始まりを表現します。

     文は条件式もしくは式です。式文は改行もしくは ``;'' で終りになります。式を
     次の行に継続するためには、最初の行を ``\'' で終らせます。

   B>条B>件B>文
     window は、単一の制御構造を持ちます: それは完全にまとめられた if 文で、以
     下の形式です

           if <expr> then
           <statement>
           ...
           elsif <expr> then
           <statement>
           ...
           else
           <statement>
           ...
           endif

     elseelsif 部分はオプションです。 elsif は、必要なだけ繰り返して利用す
     ることができます。 <expr> は数値である必要が有ります。

   B>式
     window における式は、 C 言語中のものと似ており、ほとんどの C の演算子が数
     値オペランドとして提供されています。更に、いくつかの演算子は、文字列を操
     作するために拡張されています。

     ある式が文として使われている時、その値は評価の後で捨てられます。したがっ
     て、(代入や関数呼び出しの様な) 副作用を持った式のみが文として有用です。

     (配列でない) 一つの値の変数が、数値と文字列に対して提供されています。いく
     つかの変数は、あらかじめ定義されています。これらは後でに示してあります。

     優先順序が増加していくように、演算子を以下に示します。

     <expr1> = <expr2>
                 代入です。名前が <expr1> で文字列を値として持つ変数に、
                 <expr2> の結果が代入されます。 <expr2> の値を返します。

     <expr1> ?  <expr2> : <expr3>
                 <expr1> の評価値が真 (非 0 数値) である時、 <expr2> の値を返
                 します。そうでない場合は、 <expr3> の値を返します。 <expr2>
                 と <expr3> のどちらか一方だけが、評価されます。 <expr1> は数
                 値表現でなくてはなりません。

     <expr1> || <expr2>
                 論理的和 (or) です。数値だけが使えます。短絡評価が提供されて
                 います (つまり、 <expr1> が評価されて真である場合は、 <expr2>
                 は評価されません) 。
                 (それぞれ、等価と非等価の) 比較です。ブール値の結果 (1 か 0
                 のどちらか) が比較の結果として返されます。オペランドは、数値
                 もしくは文字列です。片一方が文字列の場合、他のオペランドも必
                 要であれば変換されます。

     <expr1> < <expr2>, <expr1> > <expr2>, <expr1> <= <expr2>, <expr1> >=
                 <expr2>
                 それぞれ、より小さい・より大きい・以下・以上をあらわします。
                 数値と文字列の両方が利用可能です。上で述べたように、自動的な
                 変換が行われます。

     <expr1> << <expr2>, <expr1> >> <expr2>
                 両方のオペランドが数値である場合、 <expr1> は、左 (もしくは、
                 右) に <expr2> ビットシフトされます。 <expr1> が文字列で、最
                 初 (もしくは、最後) の <expr2> 文字が返されます( <expr2> も文
                 字列の場合、その長さがその値として利用されます)。

     <expr1> + <expr2>, <expr1> - <expr2>
                 数値においては、加算と減算です。 ``+'' に対して、片方が文字列
                 の場合、他方は文字列に変換され、結果は二つの文字列の結合とな
                 ります。

     <expr1> * <expr2>, <expr1> / <expr2>, <expr1> % <expr2>
                 かけ算・割算・モジュロ演算 (余りの計算) です。 数字だけが利用
                 可能です。

     -<expr>, ~<expr>, !<expr>, $<expr>, $?<expr>
                 最初の 3つは、単項演算子のマイナス・ビット毎の補をとる (ビッ
                 トの反転) ・論理的な否定であり、数値だけを取ります。演算子
                 ``$'' は <expr> を取り、その名前の変数の値を返します。 <expr>
                 が値 n を持った数値で、それが (後述の) 別名マクロ中に現れた場
                 合、別名呼び出しの n 番目の引数を参照します。 ``$?'' は変数
                 <expr> の存在を調べ、存在する場合は 1 を、それ以外では 0 を返
                 します。

     <expr>(<arglist>)
                 関数呼び出しです。 <expr> は文字列でなくてはならず、 window
                 の組み込み関数名の区別できる範囲でのプレフィックスであるか、
                 ユーザ定義の別名マクロの完全な名前でなくてはなりません。組み
                 込み関数の場合、 <arglist> は以下の 2つの形式のどちらか一方で
                 す。

                       <expr1>, <expr2>, ...
                       argname1 = <expr1>, argname2 = <expr2>, ...

                 実際、両方の形式はお互い混ぜて使うことができますが、その結果
                 は予想できません。ほとんどの引数は省略可能です。デフォルトの
                 値がそれらに対しては適用されます。 argnames は、引数名を区別
                 できる範囲でのプレフィックスとすることができます。引数を分離
                 するコンマは、曖昧さを避けるためだけに用いられ、通常は省略で
                 きます。

     かである on, off, yes, no, true, false, の内の一つの値をもつか、数値表現
     においては非ゼロの値が真となります。

     alias([<string>], [<string-list>])
                 引数が与えられない場合は、全ての現在定義されている別名マクロ
                 が表示されます。そうでない場合、 <string> が表現
                 <string-list> の別名として定義されます。もし存在すれば、以前
                 の <string> の定義が返されます。デフォルトでは、
                 <string-list> は変更されません。

     close(<window-list>)
                 <window-list> で指定されたウィンドウを閉じます。
                 <window-list> が単語 all の場合、全てのウィンドウが閉じられま
                 す。値は返しません。

     cursormodes([modes])
                 ウィンドウカーソルを modes に設定します。 modes は、変数 m_ul
                 (下線)・ m_rev

     alias([<string>], [<string-list>])
                 (グラフィック、端末依存です。)で示されるモードビットのビット
                 毎の論理和です。以前のモードの値が返されます。引数に何も指定
                 しないと変更を行いません。例えば、 cursor($m_rev$m_blk) は、
                 ウィンドウカーソルを点滅する反転表示に設定します。

     default_nline([nline])
                 デフォルトバッファサイズを nline に設定します。初期設定では、
                 48 行になっています。古いデフォルトバッファサイズが返されま
                 す。引数に何も指定しないと変更は行いません。とても大きなバッ
                 ファを使うと、プログラムの速度が低下します。

     default_shell([<string-list>])
                 デフォルトのウィンドウシェルプログラムを <string-list> に設定
                 します。最初の文字列として古いシェル設定が返されます。引数に
                 何も指定しないと変更を行いません。初期設定では、デフォルト
                 シェルは環境変数 SHELL から取られます。

     default_smooth([flag])
                 コマンド window (以下参照)への smooth 引数のデフォルトの値を
                 設定します。引数はブール値フラグ (上記の on, off, yes, no,
                 true, false または数字のうちの一つ) です。引数に何も指定しな
                 いと変更を行いません。古い値が (数字として) 返されます。初期
                 値は 1 (true) です。

     echo([window], [<string-list>])
                 文字列のリスト <string-list> を、空白で分割し最後に改行を付け
                 て window へ書き出します。文字列はウィンドウにだけ表示され、
                 ウィンドウ中のプロセスには影響を与えません (以下の write を参
                 照) 。 値は返されません。デフォルトはカレントウィンドウです。

     escape([escapec])
                 エスケープ文字を escape-char に設定します。古いエスケープ文字
                 は、空文字列 ("") を設定します。

     list()      引数はありません。 全てのウィンドウの ID と ラベルが表示され
                 ます。値は返されません。

     select([window])
                 window をカレントウィンドウとします。以前のカレントウィンドウ
                 が返されます。引数を指定しないと変更を行いません。

     source(filename)
                 filename 内の長いコマンドを読み込み、実行します。ファイルが読
                 み込めない場合には -1 を返し、それ以外では 0 を返します。

     terse([flag])
                 簡素 (terse) モードを flag に設定します。簡素モードでは、コマ
                 ンドウィンドウはコマンドモード中でさえ隠されたままで、エラー
                 は端末のベルをならすことで報告されます。 flag は、上記の
                 foreground 中の値と同じです。古い簡素フラグが返されます。引数
                 を指定しないと変更は行いません。

     unalias(alias)
                 別名定義 alias を消去します。別名がない場合には -1 を返しま
                 す。それ以外の場合は 0 を返します。

     unset(variable)
                 variable 変数の定義を消去します。 variable が存在しない場合に
                 は -1 を返します。それ以外の場合は 0 を返します。

     variables()
                 引数はありません。全ての変数を表示します。値は返されません。

     window([row], [column], [nrow], [ncol], [nline], [label], [pty], [frame],
                 [mapnl], [keepopen], [smooth], [shell]).
                 左上の角が row, column で、大きさが nrow, ncol のウィンドウを
                 開きます。 nline が指定された場合、テキストバッファにその行が
                 割り当てられます。そうでない場合は、デフォルトのバッファサイ
                 ズが使われます。 row, column, nrow, ncol に対するデフォルトの
                 値は、それぞれ画面の一番上, 一番左, 一番下, 一番右になりま
                 す。 label は、ウィンドウのラベル文字列です。 frame, pty,
                 mapnl は、 (上記の) foreground への引数と同じ方法で解釈される
                 フラグの値です。これはそれぞれ、このウィンドウの周りに枠を付
                 けるか (デフォルトでは真)、ウィンドウのためにソケットペアでは
                 なく仮想端末を割り当てるか (デフォルトでは真)、改行文字をこの
                 ウィンドウでは 復帰と行送りにマップするか (デフォルトではソ
                 ケットペアの場合は真、それ以外は偽) です。一般に、ウィンドウ
                 は、プロセスが終了した時に、自動的に閉じられます。 keepopen
                 を真に設定する (デフォルトでは偽) ことでこの動作は妨げられま
                 す。 smooth が真である時、より端末らしい振舞いを実現するため
                 に、画面は (このウィンドウに対して) より頻繁に更新されます。
                 smooth のデフォルトの値は、 (上記) default_smooth コマンドで
                 設定します。 shell は、このウィンドウ内でシェルプログラムとし
                 て使われる文字列のリストです (デフォルトは、上記

     modes  物理端末で提供されている(反転表示・下線・点滅・グラフィック等の)
            表示モードです。 modes の値は、1 ビット値 m_blk, m_grp, m_rev,
            m_ul (以下参照)のビット毎の論理和になっています。これらの値は、
            ウィンドウのカーソルモードを設定する時に便利です (上の cursormodes
            参照) 。

     m_blk  点滅モードのビットです。

     m_grp  グラフィックモードのビットです (それほど有用ではありません)。

     m_rev  反転表示モードのビットです。

     m_ul   下線モードのビットです。

     ncol   物理端末の列数です。

     nrow   物理端末の行数です。

     term   端末の形式です。端末の TERMCAP エントリの 2番目のフィールドに書か
            れている標準名が使われます。


環境変数

     window は、以下のような環境変数を利用します。 HOME, SHELL, TERM, TERMCAP,
     WINDOW_ID


関連ファイル

     ~/.windowrc       スタートアップコマンドファイル
     /dev/[pt]ty[pq]?  仮想端末デバイス


歴史

     window コマンドは、 4.3BSD から導入されました。


診断

     自己説明的な診断メッセージになっています。

FreeBSD 4.4                    December 30, 1993                   FreeBSD 4.4

ABELNET VPSサービス