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") ¶
-
Запрос или установка внутренней переменной, определяющей текстовый редактор по умолчанию.
Значение по умолчанию берётся из переменной среды
EDITORпри запуске Octave. Если переменная среды не инициализирована,EDITORбудет установлено в"emacs".При вызове изнутри функции с параметром
"local", переменная изменяется локально для функции и всех вызываемых ею подпрограмм. Исходное значение переменной восстанавливается при выходе из функции.См. также: edit, edit_history.
© 1996–2023 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/v8.1.0/Commands-for-History.html