Go to the first, previous, next, last section, table of contents.


セレクションを行う

サブ数式をセレクションするには、 Emacs カーソルを所望のサブ数式の任意の文字上に置いて、 j s (calc-select-here) を押します。 Calc はその文字を含む最小範囲を強調表示します。 デフォルトでは、式の他の部分をドットで書き潰す事により サブ数式が強調表示されます。 セレクションは任意の表示モードで機能しますが、 おそらく"big" (d B) モードが最も便利でしょう。 (' ((a+b)^3 + sqrt(c)) / (2x+1) とタイプして) 次の式を入力しているとしましょう。

           3    ___
    (a + b)  + V c
1:  ---------------
        2 x + 1

カーソルを文字 `b' の上において、そして j s を押すと、 表示は次のように変ります。

           .    ...
    .. . b.  . . .
1*  ...............
        . . . .

サブ数式 `b' 以外の全ての文字がドットに変わりました。 スタックレベル番号のすぐ隣にある `*' は、 式にセレクションされた部分が存在することを示します。 (このケースではあまりに当然ですが、常に判りやすいとは限りません。 埋め込みモードではスタックが見えない事もあるので、 モードラインに単語 `Sel' が表示されます。 憑依モード 参照 。)

`b' のすぐ隣にあるカッコの上にカーソルを置いていたら、 セレクションは次のようになったでしょう。

           .    ...
    (a + b)  . . .
1*  ...............
        . . . .

セレクション範囲は、常にそれ自体で完全な式となるように選ばれます。 従ってカッコを指定すると、そのカッコが囲む範囲全体がセレクションされます。 カーソルを `+' 記号に置いても同じ結果になったでしょう。

(厳密に言えば Emscs カーソルは、 バッファの 2文字の にある Emacs 「ポイント」のしるしです。 こだわり派に言わせれば、 『Calc は「ポイント」の右の文字を含む最小のサブ数式をセレクションする。』 と言うでしょう。)

数値接頭引数 n を付けると、 セレクションは指定のサブ数式の周りに n 回拡大されます。 従って、カーソルを `b' に置いて C-u 1 j s とタイプすると `a + b' がセレクションされ、 C-u 2 j s とタイプすれば `(a + b)^3' がセレクションされる ... というふうになります。

カーソルが式の上に無かったり、大きすぎる数値接頭引数を付けると、 式全体がセレクションされます。

カーソルがスタック top を示す `.' の行(言換えると普通のホームポジション)に あった場合、このコマンドはスタックレベル 1 にある式全体をセレクションします。 このようにカーソルをスタック項の上に置かなかった場合、 大抵のセレクションコマンドは top の式に作用します。)

j a (calc-select-additional) コマンドは、 現行のセレクション範囲を拡大して、カーソル現在位置まで入るようにします。 異なる 2点を含む最小範囲をセレクションするには、 第1 の位置にカーソルを置いて j s を押し、 次に第2 の位置で j a を押します。 普通の Emacs 編集で、C-@ (set-mark-command) を使って リージョンの両端を指定するやりかたにちょっと似ています。

j o (calc-select-once) コマンドは、 j s と全く同様に式をセレクションしますが、 そのセレクションはそれを使う後続のコマンド実行後に解除されます。 例えば、j o 1 + はカーソル指定したサブ数式に 1 を加える手軽な方法です。

(もう少し正確な定義: j o コマンドはあるフラグをセットして、 セレクションされたスタック入力群に関与する後続のコマンドが、 事後にそのセレクションを解除するようにします。 j aj O を除く他の全てのセレクションコマンドは、 そのフラグをクリアします。)

j S (calc-select-here-maybe) コマンドと j O (calc-select-once-maybe) コマンドは、 それぞれ j s, j o と同等ですが、 その項にセレクションされた部分が既に存在する場合は何もしません。これは、 j r (calc-rewrite-selection; Selections with Rewrite Rules 参照 ) のようないくつかのコマンド群の振舞に類似していて、 セレクション志向のキーボードマクロで使用されることを意図しています。

サブ数式のセレクションでは通常、 `a + b - c + d'`x * y * z' のような結合された複数の項を、 式のひとつのレベルとして扱います。 式 `a + b - c + d' の、 変数名以外のどこかにカーソルを置いて j s を使えば、 全体(4つの項の和)をセレクションした事になります。

j b (calc-break-selections) コマンドは、 これら結合式の「ウラ構造」に基づいてセレクションが動作するモードを コントロールします。 Calc は上記の式を、実際は `((a + b) - c) + d'`x * (y * z)' として ストアします。 (あるややこしい理由により、Calc は乗算を右結合で扱うことに注意してください。) いったん j b モードにすると、 上式の `-' 記号にカーソルを置いてセレクションしても、 `a + b - c' の部分しかセレクションされません。 これは足し算のウラ構造を考えると理解できます。 `b - c + d' の範囲をセレクションする方法はありません。 第一印象では `a + b - c' と同じくらい まっとうなサブ数式に見えるかもしれませんが、 ウラ構造はそうではないことが判ります。 d U コマンドを使うと、任意の式のウラ構造を見ることができます (Normal Language Modes 参照 )。

j b モードにしていない時は、セレクションコマンドはウラ構造を使いません。 WYSIWYG(what you see is what you get) になります。

j u (calc-unselect) コマンドは、 カーソルがある式のセレクションを解除します。 その式にセレクションが無ければ、何もしません。 数値接頭引数を付けると、カーソル位置の式ではなく、 n 番目スタック要素のセレクションを解除します。

j c (calc-clear-selections) コマンドは、 全スタック要素のセレクションを解除します。


Go to the first, previous, next, last section, table of contents.     利用度数