Next: , Previous: Sorting, Up: Text


31.16 コラムを数える

コラム関数は、(バッファの先頭から文字を数えた)文字位置を (スクリーンの行頭から文字を数えた)コラム位置に変換します。

これらの関数は、各文字をそれがスクリーン上で占めるコラム数を基に数える。 つまり、ctl-arrowの値に依存してコントロール文字は、 2コラムか4コラム占めると数え、 タブ文字は、タブの開始コラムとtab-widthの値に依存する コラム数を占めると数えることを意味します。 See Usual Display

コラム番号の計算では、ウィンドウの幅や水平スクロール量を無視します。 その結果、コラム値は任意の大きさになりえます。 最初の(スクリーン左端の)コラムの番号は0です。

— Function: current-column

この関数は、左端を0としてコラム数で数えたポイントの水平位置を返す。 コラム位置は、現在行の先頭からポイント位置までの文字すべての 表示上の表記の幅の総和である。

current-columnの使用例については、 Text Linescount-linesを参照。

— Function: move-to-column column &optional force

この関数は、ポイントを現在行のcolumnへ移動する。 columnの計算では、現在行の先頭からポイント位置までの 文字すべての表示上の表記の幅を考慮する。

コラムcolumnが行末を越える場合、ポイントを行末へ移動する。 columnが負であると、ポイントを行頭へ移動する。

コラムcolumnがタブなどの複数コラムを占める文字の中ほどにあるために そこへ移動できない場合には、 ポイントを当該文字の末尾へ移動する。 しかし、forcenil以外であり columnがタブの中ほどであると、 コラムcolumnに正確に移動できるようにタブを空白に変換する。 複数コラムを占めるその他の文字では、それらを分割する方法がないため、 forceを指定しても変則的になる。

コラムcolumnに到達できるほど行が長くない場合にも 引数forceには効果がある。 そのような場合、指定コラムに達するように行末に白文字を追加する。

columnが整数でないと、エラーを通知する。

戻り値は、実際の移動先のコラム番号である。