履歴のルール

履歴について

テキスト で何かの処理を記入して実行すると、その記入した文字が入力補完に表示されるようになります。
これを履歴と表現しています。

このページではこの履歴の仕様についてなるべく細かく説明します。

履歴の設定

設定 のウインドウの 設定1 のタブの中にある、
コマンドの履歴の数 の項目がこの履歴に対する設定です。

この設定の数字を変える事で履歴を保存する数を増やしたり減らしたりする事ができます。

上記の設定のページで説明している事と同じ事を説明します。

初期値

初期設定では20が設定されます。

数字は99以内までしか設定できません。
それ以上を指定すると初期値に戻るようにしています。

補足

初期値に戻すために、あえて100以上の設定をする方法もあります。

履歴を保存しないようにする

履歴を保存したくない場合は以下の方法を使います。

設定 のウインドウの中にある、
コマンドの履歴の数 の数字を0に設定します。

数字を0に設定すると、履歴を保存する処理自体をしなくなります。

この設定は O_textHistory の変数を使う事で設定をする事もできます。

使う際は、 SetO_textHistory( num ) の関数を使ってください。

設定 の項目の中に同じものはありませんが、
設定用の変数で O_textHistoryNotFlag という変数もあります。

この変数の値が True の場合は履歴の保存をしないようになっています。

規定のコマンドで履歴だけを表示する

規定のコマンドで &popHistoryList があり、これを使うと履歴のみが入力補完に表示します。

ですが、これは テキスト上のキーとして登録して使わないと意味がないものになっています。
使える様にするなら、 &popHistoryListテキスト上のキーとして使える様にしてから使ってください。

後、これを使った時に入力補完を元に戻す時は、
Ctrl+Space &popList を押すか、
テキストの文字を一度カラにする事で元の状態に戻せます。

もう一つ &popHistoryFilterList というのがあります。

さっきの &popHistoryList との違いは、 テキスト に記入している文字から部分一致した履歴のみを入力補完に表示するというものです。

これも テキスト上のキーとして登録して使わないと意味がないので、 使える様にするなら、 テキスト上のキーとして使える様にしてから使ってください。

履歴の仕様

ファイルに保存する

履歴はファイルに保存するため、再起動した後も同じものが使えます。

ファイルを保存するタイミングは テキスト を実行した時と同じ時です。

カーソルの位置が右端になる時と同じ

2022年2月14日
今のバージョンで

現時点の仕様の事なので今後も同じとは限らない事かもしれません。

テキスト で実行した際、カーソルの位置が右端に移動するようになっています。

実は 履歴を保存する 場合に カーソルの位置が右端にする 様になっています。

規定のコマンドを使う場合は、カーソルの位置が右端に移動するだけの場合があるので全てそうとは言い切れないのですが、
カーソルの位置が右端になる場合は、履歴を保存する時の目印になっているところがあります。

とりあえず、カーソルの位置が右端に移動しない場合は履歴への保存は行われていないと思ってよいです。

個別に履歴を保存しないようにする方法

先程、 設定 のウインドウの中の コマンドの履歴の数 の項目を 0 にすることで履歴を保存しない方法を説明しました。

それとは別に履歴を保存しないものを個別に設定する方法があるのでそれを説明しておきます。

二行以上のアイテムの場合

二行以上のアイテム の場合は、 スクリプトの最初の一行
; --norecord または ; -n の記述の場合、
その 二行以上のアイテムテキスト から実行しても履歴に加えないルールになっています。

; --norecord
[実行するスクリプト]

もし、実行した時に履歴に加えたくない 二行以上のアイテム があった場合、以上の記述を スクリプト に記入して登録しておく事で、履歴に加えない アイテム として使用できます。

二行以上のアイテムの登録 のウインドウを使って アイテム を登録する場合、そのウインドウの中に
実行しても履歴に加えない のボタンがあります。

このボタンを使う事で
; --norecordスクリプト の一行目に追加されるので履歴に加えたくない場合はこれを使うと良いと思います。

テキスト上のキーの場合

テキスト上のキーを使って実行した場合でも、履歴に保存するようにしています。

保存するものは、 テキスト に記入している文字の部分だけです。
テキスト上のキー実行スクリプト の内容が含まれているものが履歴に保存される訳ではありません。

テキスト に文字を記入せずに テキスト上のキーを使った場合は履歴は保存しません。

それと、履歴に保存するかどうかは実行するスクリプトの内容次第になります。

テキスト上のキーを履歴に加えない場合

さて、履歴に加えない方法ですが、

この テキスト上のキーを使った場合、
そのキーの 実行スクリプト の右端が %-- であった場合、そのキーを引数をつけて実行しても履歴に保存しない様にしています。

実行スクリプト の右端が %-- の場合は引数をつけても引数を無効にする仕様になっているので、 テキスト の文字の保存もしないようにしています。

履歴に加えないという事は、 カーソルの右端の移動も無い事になります。

履歴に加えたくないキーの場合や、 カーソルを右端に移動したくないキーの場合は 実行スクリプト の右端に %-- をつけた テキスト上のキーを登録するとよいと思います。

「テキストの文字で自動的に実行」の場合

テキストの文字で自動的に実行 の設定に関するものを使った場合です。

これは、 テキスト上のキーの場合と同じ様なルールになっています。

実行する処理 の右端に %-- をつけたものが実行される場合は、引数は無視され、履歴の保存もしないようになっています。

履歴に保存する場合としない場合

履歴に保存する場合としない場合をなるべく細かく挙げていこうと思います。

履歴に保存する場合

以下に履歴を保存する時のパターンを挙げます。

いずれも テキスト から実行した時に履歴を保存します。

ファイルパス

ファイルパスを記入して実行する場合は履歴を保存します。

AHKのスクリプト

AHK のスクリプトと同じ記述の場合を挙げます。
記述によって違いがあります。

AHKコマンド

履歴を保存します。
種類は豊富ですが、全て保存の対象です。

変数の代入

履歴を保存します。

関数の実行

履歴を保存しません。

ただし、変数の代入をした場合は履歴を保存します。

varName2 := F_getParentFolder( varName1 )
if文

if文を一行で記入する方法を使った場合のみ
履歴を保存します。

履歴に保存しない場合

次は履歴に保存をしない例を挙げます。

上記に 「テキスト から実行した場合に履歴を保存する」と説明しました。
つまりそうでない場合は履歴に保存しません。

二行以上のスクリプト

複数行のスクリプトが実行される場合は履歴を保存しません。

よって一行一行履歴を保存したりはしません。

二行以上のアイテムの中身

二行以上のアイテムテキスト から実行された場合は、 テキストにある文字を 履歴に保存します。

ですが、中身のスクリプトは履歴に保存しません。

二行以上のアイテムテキスト 以外から実行された場合も保存しません。

二行以上のスクリプト の中からさらに 二行以上のアイテム が呼び出されたりした場合も保存しません。

タイマーを使って実行したスクリプト

&timer&wait を使って動作させるタイマーについてです。
これによって動作させたものは、実行させても履歴に保存しません。

起動時に実効したスクリプト

履歴に保存しません。

起動時に実効する場合の説明はこちらのページでしています。

普通の使い方 起動時にスクリプトを実行する

履歴に保存する場合としない場合の両方があるもの

以下に挙げるものは履歴に保存する場合としない場合があり、中身のスクリプトによって変わってくるものです。

当然、 テキスト から実行させた場合が前提です。
テキスト から実行させていないのであれば保存はしません。

規定のコマンド

規定のコマンドにはタイプがあり、そのタイプの番号によって履歴に保存するかどうかが変わります。
これは細かい動作の仕様の事ですので、動作の違いをしりたい方は 辞書 のページを参考にしてください。

基本的には、履歴に残す必要がなさそうなものを保存しない様にしています。

入力補完を表示するものや、 % % を展開するものは履歴に保存しません。

&collabText も履歴に保存しないようにしています。
これは、ストックを使う時の規定のコマンドです。

つまり、ストックを使って実行させた場合も履歴の保存はしないようになっています。

アイテム

アイテム種類 によって履歴の保存をするかしないかが変わります。

ソフト・ファイルフォルダ二行以上 の種類の アイテム の場合は 履歴を 保存します。

スクリプト の種類の場合は、スクリプト ( リンク先 ) の内容によって保存するかしないかが変わります。

スクリプトが先程挙げた履歴を保存しないタイプの規定のコマンド等であった場合は保存はしません。

履歴を保存する場合は、スクリプトの内容を保存する訳ではありません。
テキストに記入していた文字の方だけを 保存します。

二行以上のアイテム

二行以上 の種類の アイテム保存します。

上記に説明した事です。
あえて履歴に保存しないようにするなら、 スクリプトの一行目に
; --norecord または ; -n の記述をして登録しておくとその アイテム は履歴の保存をしないようになります。

テキスト上のキー

上記に説明した事です。
テキスト に文字を記入した状態で テキスト上のキーを使って実行した場合は、 テキスト に記入していた文字を 保存します。

保存するかどうかは、実行スクリプトの内容によって保存するかしないかが変わります。
上記の ; --norecord を一行目に記入してある 二行以上のアイテム を指定していた場合も当然保存しません。

そして、実行スクリプトの右端に %-- がある テキスト上のキーも、 テキスト に文字を記入して実行したとしても履歴の保存をしないようにしています。

テキストの文字で自動的に実行

テキスト上のキーと同じルールになっています。

こちらの場合も、 実行する処理 の右端に %-- があるなら、履歴を保存しません。