2.4.5 Commands for Manipulating the History

Last-modified: 2025-03-20 (木) 20:03:49

2.4.5 履歴を操作するコマンド

Octave は通常、入力したコマンドを追跡し、以前のコマンドを呼び出して編集したり、再度実行したりできるようにします。Octave を終了すると、変数 で指定された数までの最新の入力コマンドがhistory_sizeファイルに保存されます。Octave が起動すると、変数 で指定されたファイルからコマンドの初期リストが読み込まれますhistory_file。

履歴リストを簡単に参照および検索するためのコマンドを次に示します。

LFD
RET

カーソルがどこにあるかに関係なく、現在の行を受け入れます。行が空でない場合は、それを履歴リストに追加します。行が履歴行だった場合は、履歴行を元の状態に復元します。

C-p

履歴リスト内を上へ移動します。

C-n

履歴リストを下に移動します。

M-<

履歴の最初の行に移動します。

M->

入力履歴の最後、つまり入力中の行に移動します。

C-r

現在の行から開始して、必要に応じて履歴を上方向へ移動しながら後方に検索します。これは増分検索です。

C-s

現在の行から開始して前方に検索し、必要に応じて履歴を下に移動します。

ほとんどの端末では、履歴リスト内を移動するために C-p、と の代わりに上矢印キーと下矢印キーを使用することもできます。C-n

履歴リスト内を移動するためのキーボード コマンドに加えて、Octave は履歴リストからコマンドのチャンクを表示、編集、および再実行するための 3 つの機能を提供します。

: history

: history opt1 …

: H = history ()

: H = history (opt1, …)

引数なしで呼び出すと、history実行したコマンドのリストが表示されます。

有効なオプションは次のとおりです。

n
-n

履歴の 最新のn行のみを表示します。

-c

履歴リストをクリアします。

-q

表示される履歴の行に番号を付けません。これは、X ウィンドウ システムを使用してコマンドを切り取って貼り付ける場合に便利です。

-r file

ファイルfileを読み取り、その内容を現在の履歴リストに追加します。名前が省略された場合は、デフォルトの履歴ファイル(通常は~/.オクターブ履歴)。

-w file

現在の履歴をファイルfileに書き込みます。名前を省略した場合は、デフォルトの履歴ファイル(通常は~/.オクターブ履歴)。

たとえば、行番号を表示せずに、入力した最新の 5 つのコマンドを表示するには、 コマンドを使用します history -q 5。

単一の出力引数で呼び出された場合、履歴はセル文字列としてその引数に保存され、画面には出力されません。
See also: edit_history, run_history.

: edit_history

: edit_history cmd_number

: edit_history first last

EDITOR変数で指定されたエディタを使用して履歴リストを編集します

編集するコマンドは、まず一時ファイルにコピーされます。エディタを終了すると、Octave はファイルに残っているコマンドを実行します。edit_historyコマンド ラインに直接入力するよりも、関数を定義するために使用する方が便利な場合がよくあります。コマンドのブロックは、エディタを終了するとすぐに実行されます。コマンドの実行を回避するには、エディタを終了する前にバッファからすべての行を削除するだけです。

引数なしで呼び出された場合は、前に実行されたコマンドを編集します。引数が 1 つの場合は、指定されたコマンドcmd_numberを編集します。引数が 2 つの場合は、 firstと last の間のコマンドのリストを編集します。コマンド番号指定子は負の値にすることもできます。この場合、-1 は最後に実行されたコマンドを指します。以下は同等であり、最後に実行されたコマンドを編集します。

edit_history
edit_history -1

範囲を使用する場合、最初のコマンドに最後のコマンドよりも大きい数値を指定すると、コマンドのリストが逆になってから、編集するバッファーに配置されます。

See also: run_history, history.

: run_history

: run_history cmd_number

: run_history first last

履歴リストからコマンドを実行します。

引数なしで呼び出された場合は、以前に実行されたコマンドを実行します。

引数を 1 つ指定して、指定されたコマンドcmd_numberを実行します。

2つの引数を指定すると、 firstと last の間のコマンドのリストを実行します。コマンド番号指定子は負の値も指定できます。この場合、-1は最後に実行されたコマンドを指します。たとえば、コマンド

run_history
    または
run_history -1

範囲を使用する場合、最初のコマンドに最後のコマンドよりも大きい数値を指定すると、コマンドのリストが逆になってから、編集するバッファーに配置されます

run_history 13 169

コマンド 13 から 169 を実行します。

最初のコマンドに最後のコマンドよりも大きい数値を指定すると、コマンドを実行する前にコマンドのリストが逆になります。例:

disp (1)
disp (2)
run_history -1 -2
⇒
 2
 1

See also: edit_history, history.

Octave では、履歴を保存するタイミング、場所、方法の詳細をカスタマイズすることもできます。

: val = history_save ()

: old_val = history_save (new_val)

: old_val = history_save (new_val, "local")

コマンドラインに入力されたコマンドが履歴ファイルに保存されるかどうかを制御する内部変数を照会または設定します。

オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。

See also: history_control, history_file, history_size, history_timestamp_format_string.

: val = history_control ()

: old_val = history_control (new_val)
コマンドを履歴リストに保存する方法を指定する内部変数を照会または設定します。

OCTAVE_HISTCONTROL.デフォルト値は空の文字列ですが、環境変数によって上書きされる場合があります

history_controlの値は、コマンドを履歴リストに保存する方法を制御するコロンで区切られた値のリストです。値のリストに が含まれている場合ignorespace、スペース文字で始まる行は履歴リストに保存されません。 の値は、ignoredups 前の履歴エントリに一致する行を保存しません。 の値はおよび の ignoreboth省略形です。 の値は、現在の行を保存する前に、現在の行に一致する以前のすべての行を履歴リストから削除します。上記のリストにない値はすべて無視されます。 が 空の文字列の場合、 の値に従って、すべてのコマンドが履歴リストに保存されます。

See also: history_file, history_size, history_timestamp_format_string, history_save.

: val = history_file ()

: old_val = history_file (new_val)

コマンド履歴を保存するために使用されるファイルの名前を指定する内部変数を照会または設定します

現在の Octave セッション中に発行される今後のすべてのコマンドは、この新しいファイルに書き込まれます (現在の設定でhistory_save許可されている場合)。

デフォルト値は$DATA/オクターブ/歴史、は $DATA プラットフォーム固有の(ローミング)ユーザーデータファイルの場所です(例:$XDG_DATA_HOME または、それが設定されていない場合は、~/.local/シェア (Unix系オペレーティング システムまたは%APPDATA% Windows の場合) デフォルト値は環境変数によって上書きされる場合があります OCTAVE_HISTFILE。

Programming Notes:Octaveの履歴ファイルの場所を恒久的に変更したい場合は、history_file新しいOctaveセッションごとにコマンドを発行する必要があります。これは、Octaveの.オクターバー起動ファイル。

この別の履歴ファイルから過去の Octave セッションの保存された履歴コマンドも読み取る場合は、 history -r履歴ファイルの新しい値を設定した後、追加のコマンドを使用する必要があります。これを行うための Octave の起動ファイル内のサンプル コードは次のようになります。

history_file ("~/new/.octave_hist");
if (exist (history_file ()))
  history ("-r", history_file());
endif

See also: history, history_control, history_save, history_size, history_timestamp_format_string.

: val = history_size ()

: old_val = history_size (new_val)

履歴ファイルに保存するエントリの数を指定する内部変数を照会または設定します。

デフォルト値は です1000が、環境変数 によって上書きされる場合があります

See also: history_file, history_timestamp_format_string, history_save.

: val = history_timestamp_format_string ()

: old_val = history_timestamp_format_string (new_val)

: old_val = history_timestamp_format_string (new_val, "local")

Octave の終了時に履歴ファイルに書き込まれるコメント行のフォーマット文字列を指定する内部変数を照会または設定します。
フォーマット文字列はに渡されますstrftime。デフォルト値は

"# Octave VERSION, %a %b %d %H:%M:%S %Y %Z <USER@HOST>"

オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。

See also: strftime, history_file, history_size, history_save.

: val = EDITOR ()

: old_val = EDITOR (new_val)

: old_val = EDITOR (new_val, "local")

CLIを使用するときにデフォルトのテキスト エディターを指定する内部変数を照会または設定します。

デフォルト値は、Octave の起動時に環境変数から取得されます EDITOR 。環境変数が初期化されていない場合は、EDITOR に設定されます"emacs"。

注:この設定は CLI を実行するときに適用されます。Octave GUI を使用する場合、デフォルトのエディターは [環境設定] の [エディター] タブで指定されます。

オプションを使用して関数内から呼び出されると"local"、関数とそれが呼び出すサブルーチンに対して変数がローカルに変更されます。関数を終了すると、元の変数値が復元されます。

See also: edit, edit_history.