Octave通常会跟踪您输入的命令,以便您可以调用前一个命令来编辑或再次执行它们。当您退出时,您输入的最新命令,
最多为history_size
变量指定的数字,保存在一个文件中。当Octave启动时,它会从变量history_file
命名的文件中加载一个初始命令列表.
以下是用于简单浏览和搜索历史列表的命令。
无论光标在哪里,都接受当前行。如果该行不为空,请将其添加到历史记录列表中。如果这行是一条历史行,那么将历史行恢复到其原始状态。
在历史记录列表中向上移动。
在历史记录列表中向下移动。
移动到历史记录的第一行。
移动到输入历史记录的末尾,即您正在输入的行!
从当前行开始向后搜索,并根据需要在历史记录中向上移动。这是一个增量搜索。
从当前行开始向前搜索,并根据需要在历史记录中“向下”移动。
在大多数终端上,也可以使用向上和向下箭头键来代替C-p和C-n以在历史记录列表中移动。
除了在历史列表中移动的键盘命令外,Octave还提供了三个函数,用于查看、编辑和重新运行历史列表中的命令块。
opt1 …
¶H =
history ()
¶H =
history (opt1, …)
¶如果在没有自变量的情况下调用,history
显示您已执行的命令列表。
有效参数包括:
n
-n
仅显示最近的n历史的脉络。
-c
清除历史记录列表。
-q
不要对显示的历史行进行编号。这对于使用X窗口系统剪切和粘贴命令非常有用。
-r file
读取文件file,将其内容附加到当前历史记录列表中。如果省略了名称,则使用默认的历史文件(通常~/.octave_hist).
-w file
将当前历史记录写入文件file。如果名称被省略,则使用默认的历史文件(通常~/.octave_hist).
例如,要在不显示行号的情况下显示输入的五个最新命令,请使用以下命令history -q 5.
如果使用单个输出参数调用,则历史记录将作为元胞字符串保存到该参数中,并且不会输出到屏幕。
详见: edit_history, run_history.
cmd_number
¶first last
¶使用变量命名的编辑器编辑历史记录列表EDITOR
.
要编辑的命令首先被复制到一个临时文件中。退出编辑器时,Octave将执行保留在文件中的命令。它通常使用起来更方便edit_history
定义函数,而不是尝试直接在命令行上输入它们。一旦您退出编辑器,就会立即执行命令块。为了避免执行任何命令,只需在离开编辑器之前从缓冲区中删除所有行即可。
当在没有参数的情况下调用时,请编辑先前执行的命令;使用一个参数,编辑指定的命令cmd_number;使用两个参数,编辑之间的命令列表first和last。命令号值也可能是负数,其中-1表示最近执行的命令。以下内容相当于并编辑最近执行的命令。
edit_history edit_history -1
使用范围时,为第一个命令指定比上一个命令大的数字会在将命令放入要编辑的缓冲区时反转命令列表。
详见: run_history, history.
cmd_number
¶first last
¶从历史记录列表中运行命令。
当在没有参数的情况下调用时,运行先前执行的命令;
使用一个参数,运行指定的命令cmd_number;
使用两个参数,在之间运行命令列表first和last。命令号值也可能是负数,其中-1表示最近执行的命令。例如,命令
run_history OR run_history -1
再次执行最近的命令。命令
run_history 13 169
执行命令13到169。
为第一个命令指定比最后一个命令大的数字会在执行命令之前反转命令列表。例如
disp (1) disp (2) run_history -1 -2 ⇒ 2 1
详见: edit_history, history.
Octave还允许您自定义历史记录保存的时间、位置和方式的详细信息。
val =
history_save ()
¶old_val =
history_save (new_val)
¶old_val =
history_save (new_val, "local")
¶查询或设置内部变量,该变量控制在命令行中输入的命令是否保存在历史文件中。
当带"local"
参数且在函数内部调用时,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。
详见: 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
是ignorespace
和ignoredups
的简写。
如果值列表包括erasedups
,在保存当前行之前,将与该行匹配的所有先前行从历史记录列表中删除。
任何不在上述列表中的值都将被忽略。
如果history_control
是空字符串,所有命令都保存在历史记录列表中,
以history_save
的值为准.
详见: history_file, history_size, history_timestamp_format_string, history_save.
val =
history_file ()
¶old_val =
history_file (new_val)
¶查询或设置内部变量,该变量指定用于存储命令历史记录的文件的名称。
在当前Octave会话期间执行的之后所有命令都将写入该新文件(如果history_save
设置允许这样)。
默认值为$DATA
/octave/history,这里的$DATA
是(漫游)用户数据文件的平台特定位置(例如$XDG_DATA_HOME
,如果没有设置,则在类Unix操作系统上为~/.local/share或在Windows上为%APPDATA%
)。默认值可能被OCTAVE_HISTFILE
环境变量覆盖.
编程说明:
如果要永久更改Octave历史文件的位置,则需要执行history_file
命令。这可以通过使用Octave的.octaverc启动文件来设置。
如果您还想从这里的不同的历史文件中读取过去Octave会话的已保存历史命令,则需要在设置历史文件的新值之后运行命令history -r
。Octave启动文件中的示例代码可能如下所示:
history_file ("~/new/.octave_hist"); if (exist (history_file ())) history ("-r", history_file()); endif
详见: history, history_control, history_save, history_size, history_timestamp_format_string.
val =
history_size ()
¶old_val =
history_size (new_val)
¶查询或设置内部变量,该变量指定要在历史文件中存储的分量数。
默认值为1000
,但可能被OCTAVE_HISTSIZE
环境变量覆盖.
详见: 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"
参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。
详见: 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时,默认编辑器在Preferences中的Editor选项卡中指定。
当从具有的函数内部调用时"local"
参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。
详见: edit, edit_history.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2