Spec-Zone.ru › Octave 9

Далее: Настройка readline, Предыдущее: Позволение Readline печатать за вас, Вверх: Редактирование командной строки [Оглавление][Индекс]

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.

Далее: Настройка readline, Предыдущее: Позволяя Readline печатать за вас, Вверх: Редактирование командной строки [Оглавление][Индекс]

© 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/v9.2.0/Commands-for-History.html

Spec-Zone.ru

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