Spec-Zone.ru › Octave 5

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)
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 позволяет это).

Значение по умолчанию — ~/.octave_hist, но может быть переопределено переменной окружения 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)
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)
EDITOR (new_val, "local")

Запрос или установка внутренней переменной, определяющей текстовый редактор по умолчанию.

Значение по умолчанию берется из переменной среды EDITOR при запуске Octave. Если переменная среды не инициализирована, EDITOR будет установлено в "emacs".

При вызове изнутри функции с опцией "local", переменная изменяется локально для функции и всех вызываемых ею подпрограмм. Исходное значение переменной восстанавливается при выходе из функции.

См. также: edit, edit_history.

© 1996–2022 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/v5.2.0/Commands-for-History.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API