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 есть три функции для просмотра, редактирования и повторного выполнения фрагментов команд из списка истории.
- : history
-
: history
opt1 … -
:
H =history() -
:
H =history(opt1, …) -
Если вызвать
historyбез аргументов, функция выводит список выполненных вами команд.Допустимые параметры:
n-n-
Вывести только последние n строк истории.
-c-
Очистить список истории.
-q-
Не нумеровать выводимые строки истории. Это полезно для копирования и вставки команд с помощью X Window System.
-r file-
Прочитать файл file, добавив его содержимое к текущему списку истории. Если имя не указано, использовать файл истории по умолчанию (обычно ~/.octave_hist).
-w fileЗаписать текущую историю в файл file. Если имя не указано, использовать файл истории по умолчанию (обычно ~/.octave_hist).
Например, чтобы вывести пять последних введённых вами команд без номеров строк, используйте команду history -q 5.
Если функция вызвана с одним выходным аргументом, история будет сохранена в этом аргументе в виде ячеечного массива строк и не будет выведена на экран.
См. также: edit_history, run_history.
- : edit_history
-
: edit_history
cmd_number -
: edit_history
first last -
Редактировать список истории с помощью редактора, имя которого задано переменной
EDITOR.Команды для редактирования сначала копируются во временный файл. После выхода из редактора Octave выполняет команды, оставшиеся в файле. Часто удобнее использовать
edit_historyдля определения функций, чем вводить их непосредственно в командной строке. Блок команд выполняется сразу после выхода из редактора. Чтобы не выполнять команды, просто удалите все строки из буфера перед выходом из редактора.При вызове без аргументов редактируется ранее выполненная команда; с одним аргументом — указанная команда cmd_number; с двумя аргументами — список команд между first и last. В качестве номеров команд также можно указывать отрицательные числа, где -1 означает последнюю выполненную команду. Следующие команды эквивалентны и редактируют последнюю выполненную команду.
edit_history edit_history -1
При использовании диапазонов, если номер первой команды больше номера последней, список команд разворачивается перед помещением в буфер для редактирования.
См. также: run_history, history.
- : run_history
-
: run_history
cmd_number -
: run_history
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или, если оно не задано, ~/.local/share в Unix-подобных операционных системах либо%APPDATA%в Windows. Значение по умолчанию можно переопределить переменной средыOCTAVE_HISTFILE.Примечания по программированию:
Чтобы навсегда изменить расположение файла истории Octave, необходимо выполнять команду
history_fileпри каждом новом запуске Octave. Для этого можно использовать стартовый файл 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 редактор по умолчанию задаётся на вкладке «Редактор» в окне настроек.
При вызове из функции с параметром
"local"значение переменной изменяется локально для этой функции и всех вызываемых ею подпрограмм. Исходное значение переменной восстанавливается при выходе из функции.См. также: edit, edit_history.
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Commands-for-History.html