編集テキスト内の位置を規定するリレー型関数

 ここでは、本エディタ関連の リレー型関数 について、詳しく説明します。


■リレー型関数一覧

関数名 概要説明
'LineNo 「行番号」属性の設定/現値取得
'LLi 「論理行インデックス」属性の設定/現値取得
'VLi 「表示行インデックス」属性の設定/現値取得
'FLi 「外見行インデックス」属性の設定/現値取得
'LLn 「相対論理行数」属性の設定
'VLn 「相対表示行数」属性の設定
'FLn 「相対外見行数」属性の設定
'Column 「桁番号」属性の設定/現値取得
'Xc 「X座標」属性の設定/現値取得
'Xd 「相対X座標」属性の設定
'Ci 「文字コードインデックス」属性の設定/現値取得
'DCn 「相対文字コード数」属性の設定
'DKn 「相対文字数」属性の設定
'DWn 「相対単語数」属性の設定
'LCn 「現行頭からの文字コード数」属性の設定/現値取得
'LKn 「現行頭からの文字数」属性の設定/現値取得
'LWn 「現行頭からの単語数」属性の設定
'TextTop「テキスト先頭」属性の付いた数値を返す(無対象)
'TextEnd「テキスト末尾」属性の付いた数値を返す(無対象)
'LineTop「行頭」属性の付いた数値を返す(無対象)
'LineEnd「行末」属性の付いた数値を返す(無対象)
'LineLim「行終端」属性の付いた数値を返す(無対象)
'WordTop「単語先頭」属性の付いた数値を返す(無対象)
'WordEnd「単語末尾」属性の付いた数値を返す(無対象)
'SLn 「画面最上行からの行位置」属性の設定/現値取得

■リレー型関数詳説

'LineNo
説明:行番号」を示す属性を、対象の数値に設定して返します。 対象がなければ、現カーソル位置の「行番号」に、この属性を設定して返します。 この「行番号」の種別が、論理行か表示行かは、 「現位置」の行種別に依存します。 「行番号」の値は、1, 2, 3, ... で、それぞれ、第1、第2、第3、...番目の行に 対応します。
補説:現位置」の行は、 本「行番号」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別と桁は、現状のままです。
用例:  ::Apsaly.MoveTo( 100'LineNo );
これを実行すると、カーソルが 100 行目に移動します。 この行番号が論理行か表示行かは、現環境設定に依存します。
'LLi
説明:論理行インデックス」を示す属性を、 対象の数値に設定して返します。 対象がなければ、現カーソル位置の「論理行インデックス」に、 この属性を設定して返します。
補説:現位置」の行は、 本「論理行インデックス」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、論理行に更新されます。
現位置」の桁は、現状のままです。
用例:  ::Apsaly.MoveTo( 200'LLi );
これを実行すると、「論理行インデックス」が 200 の行にカーソルが移動します。
'VLi
説明:表示行インデックス」を示す属性を、 対象の数値に設定して返します。 対象がなければ、現カーソル位置の「表示行インデックス」に、 この属性を設定して返します。
補説:現位置」の行は、 本「表示行インデックス」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、表示行に更新されます。
現位置」の桁は、現状のままです。
用例:  ::Apsaly.MoveTo( 200'VLi );
これを実行すると、「表示行インデックス」が 200 の行にカーソルが移動します。
'FLi
説明:外見行インデックス」を示す属性を、 対象の数値に設定して返します。 対象がなければ、現カーソル位置の「外見行インデックス」に、 この属性を設定して返します。
補説:現位置」の行は、 本「外見行インデックス」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
現位置」の桁も、現状のままです。
ちなみに、外見行インデックスは、折り畳みが現編集テキスト内に無ければ、 表示行インデックスと同じになります。
用例:  ::Apsaly.MoveTo( 120'FLi );
これを実行すると、「外見行インデックス」が 120 の行にカーソルが移動します。
'LLn
説明: 「(現位置からの)相対論理行数」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。
補説:現位置」の行は、 本「(現位置からの)相対論理行数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、論理行に更新されます。
現位置」の桁は、現状のままです。
用例:  ::Apsaly.MoveTo( 5'LLn );
これを実行すると、現論理行よりも5行先の論理行へカーソルが移動します。
'VLn
説明: 「(現位置からの)相対表示行数」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。
補説:現位置」の行は、 本「(現位置からの)相対表示行数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、表示行に更新されます。
現位置」の桁は、現状のままです。
用例:  ::Apsaly.MoveTo( -3'VLn );
これを実行すると、現表示行よりも3行前の表示行へカーソルが移動します。
'FLn
説明: 「(現位置からの)相対外見行数」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。
補説:現位置」の行は、 本「(現位置からの)相対外見行数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
現位置」の桁も、現状のままです。
ちなみに、相対外見行数は、折り畳みが現編集テキスト内に無ければ、 相対表示行数と同じになります。
用例:  ::Apsaly.MoveTo( +10'FLn );
これを実行すると、現外見行よりも10行先の外見行へカーソルが移動します。
'Column
説明:桁番号」を示す属性を、対象の数値に設定して返します。 対象がなければ、現カーソル位置の「桁番号」に、この属性を設定して返します。
「桁番号」の起点は、環境設定の「桁目盛り」で、「桁番号の基点を0にする」の 指定が、ON なら 0 に、OFF なら 1 になります。
補説:現位置」の桁は、 本「桁番号」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行と行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 40'Column );
これを実行すると、カーソルが 40 桁目に移動します。 この桁番号の基点が 0 か 1 かは、現環境設定に依存します。
'Xc
説明: 「(表示行の左端からの)X座標」を示す属性を、対象の数値に設定して返します。 対象がなければ、現カーソル位置の「表示行の左端からのX座標」に、 この属性を設定して返します。
このX座標の単位は画素数で、起点(表示行の先頭桁の左端位置)は 0 になります。 非等幅フォント(プロポーショナルフォント)使用時、各文字の位置は、 必ずしも桁位置に一致していません。そのような場合、 X座標を使うと、各文字の位置を厳密に規定できます。
補説:現位置」の桁は、 本「X座標」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行と行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 320'Xc );
これを実行すると、カーソルは、移動可能な範囲内で、そのX座標が 320 に最も近くなる 位置へ移動します。
'Xd
説明:相対X座標」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。 X座標に関しては、'Xc で説明している通りです。
補説:現位置」の桁は、 本「相対X座標」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行と行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 80'Xd );
これを実行すると、カーソルは、移動可能な範囲内で、X座標が現位置よりも 80 だけ 右の位置に最も近い位置へ移動します。
'Ci
説明:文字コードインデックス」を示す属性を、 対象の数値に設定して返します。対象がなければ、 現カーソル位置の「文字コードインデックス」に、 この属性を設定して返します。
補説:現位置」の行と桁は、 本「文字コードインデックス」に応じて更新されます。 その値が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 1200'Ci );
これを実行すると、カーソルは、編集テキストの先頭からの文字コード数が 1200 になる 文字位置へ移動します。
'DCn
説明: 「(現位置からの)相対文字コード数」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。
補説:現位置」の行と桁は、 本「(現位置からの)相対文字コード数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 8'DCn );
これを実行すると、カーソルは、現位置からの 8 文字コード先の文字位置へ移動します。
'DKn
説明: 「(現位置からの)相対文字数」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。
補説:現位置」の行と桁は、 本「(現位置からの)相対文字数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( -3'DKn );
これを実行すると、カーソルは、現位置から 3 文字前の文字位置へ移動します。
'DWn
説明: 「(現位置からの)相対単語数」を示す属性を、対象の数値に設定して返します。 対象がない時は、null を返します。
補説:現位置」の行と桁は、 本「(現位置からの)相対単語数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 1'DWn );
これを実行すると、カーソルは、現位置から次の単語の先頭へ移動します。
'LCn
説明:(現行頭からの)相対文字コード数」を示す属性を、対象の数値に設定して返します。 対象がない時は、現行頭から現位置までの文字コード数に、この属性を設定して返します。
この「現行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。
補説:現位置」の行と桁は、 本「(現行頭からの)相対文字コード数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 24'LCn );
これを実行すると、カーソルは、現行頭からの文字コード数が 24 になる文字位置へ移動します。
'LKn
説明:(現行頭からの)相対文字数」を示す属性を、対象の数値に設定して返します。 対象がない時は、現行頭から現位置までの文字数に、この属性を設定して返します。
この「現行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。
補説:現位置」の行と桁は、 本「(現行頭からの)相対文字数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 10'LKn );
これを実行すると、カーソルは、現行頭からの文字数が 10 になる(つまり、 行頭から第11番目の)文字位置へ移動します。
'LWn
説明:(現行頭からの)相対単語数」を示す属性を、対象の数値に設定して返します。 対象がない時は、現行頭から現位置までの単語数に、この属性を設定して返します。
この「現行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。
補説:現位置」の行と桁は、 本「(現行頭からの)相対単語数」に応じて更新されます。 その結果が有効範囲外なら、その最大/最小でカットされます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 2'LWn );
これを実行すると、カーソルは、現行頭からの単語数が 2 になる(つまり、 行頭から第3番目の)単語の先頭へ移動します。
'TextTop
説明:テキスト先頭」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。
補説:現位置」の行と桁は、 「テキスト先頭」に更新されます。
現位置」の行種別は、現状のままです。
用例:

 ::Apsaly.MoveTo( 'TextTop );
これを実行すると、カーソルは、現編集テキストの先頭へ移動します。

 ::Apsaly.MoveTo( 'TextTop, 8'DKn );
これを実行すると、カーソルは、現編集テキストの先頭からの文字数が 8 になる(つまり、 第 9 番目の)文字位置へ移動します。

'TextEnd
説明:テキスト末尾」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。
補説:現位置」の行と桁は、 「テキスト末尾」に更新されます。
現位置」の行種別は、現状のままです。
用例:

 ::Apsaly.MoveTo( 'TextEnd );
これを実行すると、カーソルは、現編集テキストの末尾へ移動します。

 ::Apsaly.MoveTo( 'TextEnd, -5'DKn );
これを実行すると、カーソルは、現編集テキストの末尾から逆方向にカウントして 第 5 番目の文字位置へ移動します。

'LineTop
説明: 「(現位置における)行頭」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。
この「行頭」とは、「現位置」の行の先頭のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。
補説:現位置」の桁は、 「(現位置における)行頭」に更新されます。
現位置」の行と行種別は、現状のままです。
用例:

 ::Apsaly.MoveTo( 'LineTop );
これを実行すると、カーソルは、現行頭へ移動します。

 ::Apsaly.MoveTo( 100'LineNo, 'LineTop );
これを実行すると、カーソルは、100 行目の行頭へ移動します。

'LineEnd
説明:

「(現位置における)行末」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。

この「行末」とは、「現位置」の行の末尾のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 この行の「行終端」が、改行コードなら、この「行末」は、 その改行コードの直前の位置になります。 改行コードのない折り返し行では、「行末」と「行終端」は、同じ位置で、 これらは、次行の先頭と同じ「文字コードインデックス」 になります。

補説:現位置」の桁は、 「(現位置における)行末」に更新されます。
現位置」の行と行種別は、現状のままです。
用例:

 ::Apsaly.MoveTo( 'LineEnd );
これを実行すると、カーソルは、現行末へ移動します。 但し、改行コードのない折り返し行で、フリーカーソルでない場合、 カーソルは、その行末へ移動できないので、次行の先頭へ移動します。

 ::Apsaly.MoveTo( 100'LineNo, 'LineEnd, -3'DKn );
これを実行すると、カーソルは、100 行目の行末から 3 文字前の位置へ移動します。

'LineLim
説明:

「(現位置における)行終端」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。

この「行終端」とは、「現位置」の行の終端のことです。 この行が論理行か表示行かは、「現位置」の 行種別に依存します。 この行の「行終端」が、改行コードなら、この「行終端」は、 その改行コードの直後の位置になります。 改行コードのない折り返し行では、「行末」と「行終端」は、同じ位置になります。 「行終端」と次行の先頭は、同じ「文字コードインデックス」に なります。

補説:現位置」の桁は、 「(現位置における)行終端」に更新されます。
現位置」の行と行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 'LineLim );
これを実行すると、カーソルは、現在の行の終端へ移動します。 但し、フリーカーソルでない場合、カーソルは、行終端へは移動できないので、 次行の先頭へ移動します。
'WordTop
説明: 「(現位置における最寄の)単語先頭」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。
「最寄の単語」とは、現位置が単語の先頭/内部/末尾にあれば、その単語自身で、 さもなければ、現位置以降にある最初の単語になります。 最寄の単語が無ければ、現位置になります。
補説:現位置」の桁と行は、 「(現位置における最寄の)単語先頭」に応じて更新されます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 'WordTop );
これを実行すると、カーソルは、「最寄の単語」の先頭へ移動します。
'WordEnd
説明: 「(現位置における最寄の)単語末尾」を示す属性を設定した数値を返します。 これは、その属性に意味があって、数値には意味がありません。 このリレー型関数の対象はありません。
「最寄の単語」の意味は、'WordTop で説明した通りです。
補説:現位置」の桁と行は、 「(現位置における最寄の)単語末尾」に応じて更新されます。
現位置」の行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 'WordEnd );
これを実行すると、カーソルは、「最寄の単語」の末尾へ移動します。
'SLn
説明:画面最上行からの行位置」を示す属性を、対象の数値に設定して返します。 対象がなければ、現カーソル位置での「画面最上行からの行位置」に、 この属性を設定して返します。
「画面最上行からの行位置」が、1, 2, 3, ... で、現編集ウィンドウのテキスト表示領域の 上端から、第1、第2、第3、...行目になります。
補説:現位置」の行と桁と行種別は、現状のままです。
用例:  ::Apsaly.MoveTo( 200'LineNo, 5'SLn );
これを実行すると、カーソルが編集テキストの 200 行目に移動します。その際、 カーソルが画面上端から第 5 行目の位置になるように表示されます。