番号 | 記号 | 初期キー | 機能 |
---|---|---|---|
#05 | #e | ^E [UP] | ↑(上方にカーソルを移動) |
スクリーン上で1行上にカーソルを移動する。
戻り値 r: 0=移動成功,-1=ファイルの先頭表示行で移動失敗
ld(表示行)は変化するが,ln(論理行)は不変も有り得る。マクロで使用する場合に,確実に前の論理行に移動するには #< #s
でないと無限ループの可能性がある。
ファイルの先頭表示行で実行されると,命令失敗でrに-1(通常は成功でrは0)を返す。ファイル先頭に向かっての処理では,戻り値を判定しないと無限ループに陥る可能性がある。
また,スイッチEn(カーソルを改行以降に表示しない)が無効(-:初期値)であれば,擬似的なカーソルとなって表示桁位置にぶれを生じない。このときの表示上の桁位置は,編集テキスト変数kx(保存された桁位置)に保持されている。
[入力文字列先頭一致で]ヒストリーを遡る。
[入力文字列先頭一致で]ヒストリーを遡る。
スクリーン上で1行上にカーソルを移動する。
FM(ファイラーのモード)+8(Rotate)が指定されていて,カーソルがファイラーの上端にある場合,上端から末尾にカーソルを移動する。ただし,FW(ディレクトリバッファの数)の値が少ないと,すべてのファイルを表示できないので注意が必要である。複窓ファイラーの場合は双方の合計がFWの値に納まることが必要だ。
メニュー上で1行上にカーソルを移動する。メニューにおけるコマンドキーの例外([UP][DOWN][CR])に当たり,他のコマンドキーがメニューをキャンセルするのに対して,意味のある特定の動作をする。
メニューの上端アイテムにカーソルがある場合は,メニューの末尾アイテムにカーソルを移動する。リードオンリーメニューや1アイテムメニューであっても,コマンドキーによる戻り値は得られない。
メニューにおいて,このコマンドの戻り値の取得を可能にする技術としては,コマンドキーテーブルの一時的書換というものがある。次のサンプルマクロはYushi氏の提示したものだ。
=T23= * M 1"" &Le(pr,vp+118) &Le(vp+118,vp+110) &Le(vp+110,pr) :A !01 (r+1)??>Z (r&$FF+$100)>!{ (#s) (m"←") (#d) (m"→") (#a) (m"↑") (#f) (m"↓") } &m("%s",m) >A :Z &Le(vp+110,vp+118) &Le(vp+118,pr) * P 1 "Test",10,1 "Yushi" *
無効
このコマンドは各モード共通コマンドであるため,マクロによる拡張にあまり馴染まないが,ほとんど使われることのない歴史的ダイヤモンドカーソル^Eに特定の機能を持たせることは可能である。コマンドキー側のキーを削除しなければ,編集モード以外ではコマンドキーがマクロキーに優先するため,編集モードでのみ使うような機能がよいだろう。
= free_up
* macro
5 ^E "" ?.
#e (r)?{ ;ファイルの上端に達したら
#< #n ;1行挿入する
}
*
参照:
#<
#n
= free_up
* macro
5 ^E "" ?.
#e (r)?{
x=lx, ;カーソルの桁位置を記録
' ' #16 ;行末空白を削除
#< #n ;空行挿入
Eu[+, &#V(x) Eu], #> ;元カーソル位置まで空白を埋める
}
*
参照:
lx
#16
Eu
&#V()