locate

Last-modified: 2015-09-21 (月) 15:06:23

分類

テキストウィンドウ関連命令

使用可能節

  • 定義節?

機能

テキストウィンドウ中の仮想カーソルの位置を変更する。

書式

locate (数値1),(数値2)

解説

  • テキストウィンドウの中での仮想カーソルの位置を変更する。
  • (数値1)は行の何文字目かを指定する。0が先頭になる。
  • (数値2)は何行目かを指定する。0が先頭になる。
  • どちらの数値もマイナスや巨大な数値を指定してもエラーは出ない。
  • 初期状態、sentwindow直後やtextclear直後は0,0に設定される。

詳細

  • locateの後で実際に文字を表示しようとした時に、カーソルの位置がsetwindow?などで指定した文字表示領域からはみ出ていると、「文字がウィンドウからはみ出しました」のエラーを出してnscr.exeが止まる。
  • locateを使って、文字をかぶせることができるし、brなどを使わずに文字を離すこともできる。ただし、バックログにはlocateによる処理が記録されない。
  • デフォルトの回想モードを使う場合、文字がかぶるように使うと、回想モードで見た時には上書きされた状態になる。かぶらないように使うと、locateが無視され、行を詰めたように表示される。
  • getlog?でlocateされた文章を取得する場合、locateによる指示は無視され、とにかく記述順に並べなおされた文字列になる。

運用

  • バックログにlocateの履歴が残らないため、実はあまり使い道がない。
  • 例えば、すべてのテキストをセンタリングして表示したいと考えるならば、NSLuaと組み合わせることで事前に表示文を取得し、その長さにあった座標にすることもできるだろう。そうすれば、バックログには純粋な文章だけが残ることになる。

関連

  • setwindow?
  • getlog?

代替