Интерактивное использование
Fish гордится своей удобной интерактивной работой. Это обусловлено несколькими функциями, которые мы объясним в следующих разделах.
Fish используется путём ввода команд на языке fish, см. Язык Fish для получения информации об этом.
Справка
Fish обладает обширной системой справки. Используйте команду help, чтобы получить справку по определённой теме или команде. Например, написание help syntax отображает раздел синтаксиса этой документации.
Fish также имеет страницы справки (man pages) для своих команд и переводит страницы справки в man pages. Например, man set покажет документацию для set как man страницу.
Справка по конкретному встроенному элементу также может быть получена с параметром -h. Например, чтобы получить справку по встроенному элементу fg, введите fg -h или help fg.
Основная страница может быть просмотрена с помощью help index (или просто help) или man fish-doc. Руководство можно просмотреть с помощью help tutorial или man fish-tutorial.
Автодополнение
Fish предлагает команды по мере ввода, основываясь на истории команд, дополнениях и допустимых путях к файлам. По мере ввода команд вы увидите предлагаемое дополнение после курсора, в приглушённом сером цвете (который можно изменить с помощью переменной fish_color_autosuggestion).
Для принятия автодополнения (заменяющего содержимое командной строки) нажмите → или Ctrl+F. Для принятия первого предложенного слова нажмите Alt+→ или Alt+F. Если автодополнение не подходит, просто игнорируйте его: оно не выполнится, пока вы его не примете.
Автодополнение — мощный способ быстро вызвать часто используемые команды, набрав первые несколько символов. Это также эффективный метод навигации по иерархии каталогов.
Если вам не нравятся автодополнения, вы можете отключить их, установив $fish_autosuggestion_enabled в 0:
set -g fish_autosuggestion_enabled 0
Автодополнение Tab
Автодополнение Tab — функция экономии времени в любой современной оболочке. Когда вы нажмёте Tab, fish пытается угадать остаток слова под курсором. Если он находит только одну возможность, он вставляет её. Если он находит больше, он вставляет самую длинную однозначную часть, а затем открывает меню (”страничник”), в котором можно найти то, что вам нужно.
В страничнике можно перемещаться клавишами со стрелками, Page Up/Page Down, Tab или Shift+Tab. Нажатие Ctrl+S (привязка pager-toggle-search - / в режиме vi) открывает меню поиска, которое можно использовать для фильтрации списка.
Fish предоставляет некоторые общие дополнения, например, для команд, имён переменных, имён пользователей или файлов.
Он также предоставляет большое количество программно-специфических, запрограммированных дополнений. Большинство этих дополнений — простые опции, например, опция -l для ls, но многие из них более сложные. Например:
-
manиwhatisпоказывают установленные страницы справки в качестве дополнений. -
makeиспользует цели в файле Makefile в текущей директории в качестве дополнений. -
mountиспользует точки монтирования, указанные в fstab, как дополнения. -
apt,rpmиyumпоказывают установленные или устанавливаемые пакеты.
Вы также можете написать свои собственные дополнения или установить те, которые вы получили от кого-то другого. Для этого см. Написание собственных дополнений.
Сценарии дополнений загружаются по требованию, точно так же, как и функции. Разница в том, что используется список $fish_complete_path списков, а не $fish_function_path. Обычно новые дополнения можно поместить в ~/.config/fish/completions/name-of-command.fish, и fish найдёт их автоматически.
Выделение синтаксиса
Fish интерпретирует командную строку по мере её ввода и использует выделение синтаксиса для предоставления обратной связи. Самой важной обратной связью является обнаружение потенциальных ошибок. По умолчанию ошибки отмечаются красным цветом.
Обнаруженные ошибки включают:
- Несуществующие команды.
- Чтение из или добавление в несуществующий файл.
- Неправильное использование перенаправления вывода.
- Несоответствующие скобки.
Для настройки выделения синтаксиса можно изменить переменные окружения, перечисленные в разделе Переменные для изменения цветов выделения.
Fish также предоставляет готовые темы оформления, которые можно выбрать с помощью fish_config. Запуск просто fish_config откроет интерфейс браузера, или можно использовать fish_config theme в терминале.
Например, для отключения почти всего форматирования:
fish_config theme choose none
Или, чтобы увидеть все темы, прямо в вашем терминале:
fish_config theme show
Переменные выделения синтаксиса
Цвета, используемые fish для выделения синтаксиса, могут быть настроены путем изменения значений различных переменных. Значение этих переменных может быть одним из цветов, принятых командой set_color. Также принимаются модификаторы переключателей, принятых set_color , такими как --bold, --dim, --italics, --reverse и --underline.
Пример: чтобы сделать ошибки выделенными красным цветом, используйте:
set fish_color_error red --bold
Следующие переменные доступны для изменения цветов выделения в fish:
Переменная | Значение |
|---|---|
| цвет по умолчанию |
| команды, такие как echo |
| ключевые слова, такие как if — этот параметр использует цвет команды, если он не установлен. |
| цитированный текст, например |
| перенаправления ввода-вывода, такие как >/dev/null |
| разделители процессов, такие как |
| синтаксические ошибки |
Если переменная не установлена или пуста, fish обычно пытается $fish_color_normal, за исключением:
-
$fish_color_keyword, где он сначала пытается$fish_color_command -
$fish_color_option, где он сначала пытается$fish_color_param - Для
$fish_color_valid_path, если у него нет цвета, но только модификаторы, он добавляет их к цвету, который в противном случае использовался, как$fish_color_param. Но если у валидных путей есть цвет, он использует его и добавляет модификаторы из другого цвета.
Переменные цвета пейджера
fish иногда представляет список вариантов в таблице, называемой пейджером.
Пример: для установки фона каждой строки пейджера используйте:
set fish_pager_color_background --background=white
Чтобы иметь черный текст на чередующихся белых и серых фонах:
set fish_pager_color_prefix black set fish_pager_color_completion black set fish_pager_color_description black set fish_pager_color_background --background=white set fish_pager_color_secondary_background --background=brwhite
Переменные, влияющие на цвета пейджера:
Переменная | Значение |
|---|---|
Когда переменные secondary или selected не заданы или пусты, используются обычные переменные, за исключением $fish_pager_color_selected_background, где сначала пробуется фон $fish_color_search_match
Сокращения
Чтобы избежать ненужного ввода, часто выполняемая команда, например git checkout, может быть сокращена до gco с помощью команды abbr.
abbr -a gco git checkout
После ввода gco и нажатия клавиш Пробел или Ввод, gco в позиции команды преобразуется в git checkout в командной строке. Если вам нужно использовать gco буквально, используйте Управление+Пробел [1].
Это намного мощнее, например, можно упростить перемещение вверх по каталогам:
function multicd
echo cd (string repeat -n (math (string length -- $argv[1]) - 1) ../)
end
abbr --add dotdot --regex '^\.\.+$' --function multicd
Теперь .. преобразуется в cd ../, ... в cd ../../ и .... в cd ../../../.
Преимущества перед псевдонимами заключаются в том, что вы можете увидеть фактическую команду перед ее использованием, добавить к ней или изменить ее, а фактическая команда будет сохранена в истории.
Настраиваемый заголовок
При использовании большинства виртуальных терминалов можно установить сообщение, отображаемое в строке заголовка окна терминала. Это можно сделать автоматически в fish, определив функцию fish_title. Функция fish_title выполняется до и после выполнения новой команды или ее перевода в фоновый режим, а результат используется в качестве сообщения строки заголовка. Встроенная команда status current-command всегда возвращает имя задачи, которая должна быть переведена в фоновый режим (или fish, если управление возвращается в оболочку), когда вызывается функция fish_prompt. Первый аргумент функции fish_title будет содержать последнюю выполненную фоновую команду в виде строки.
По умолчанию заголовок fish отображает имя хоста при подключении через ssh, выполняемую в данный момент команду (если это не fish) и текущую рабочую директорию. Всё это сокращается, чтобы не сделать вкладку слишком широкой.
Примеры:
Для отображения последней команды и рабочей директории в заголовке:
function fish_title
# `prompt_pwd` shortens the title. This helps prevent tabs from becoming very wide.
echo $argv[1] (prompt_pwd)
pwd
end
Настраиваемая подсказка
Когда оболочка fish должна запросить ввод (например, после запуска или завершения команды), она отображает подсказку. Для этого выполняются функции fish_prompt и fish_right_prompt.
Результат первой функции отображается слева, а результат второй – справа от терминала. Результат fish_mode_prompt будет добавлен слева, хотя по умолчанию эта функция делает это только в режиме vi.
Настраиваемое приветствие
При интерактивном запуске fish пытается выполнить функцию fish_greeting. По умолчанию fish_greeting выводит простое приветствие. Вы можете изменить его текст, изменив переменную $fish_greeting, например, используя универсальную переменную универсальную переменную:
set -U fish_greeting
или вы можете установить её глобально в файле config.fish:
set -g fish_greeting 'Hey, stranger!'
или вы можете запрограммировать её, изменив функцию:
function fish_greeting
random choice "Hello!" "Hi" "G'day" "Howdy"
end
сохраните это в config.fish или файле функций. Вы также можете использовать команды funced и funcsave для лёгкой правки.
Режим конфиденциальности
Если $fish_private_mode имеет непустое значение, команды не будут записываться в файл истории на диске.
Вы также можете запустить его с опцией fish --private (или сокращённо fish -P). Это скрывает историю и предотвращает запись истории на диск. Это полезно для предотвращения утечки личной информации (например, для скринкастов) или при работе с конфиденциальной информацией.
Вы можете запросить переменную fish_private_mode (if test -n "$fish_private_mode" ...), если хотите учитывать желание пользователя о конфиденциальности и изменить поведение собственных скриптов fish.
Редактор командной строки
Редактор fish поддерживает копирование и вставку, поисковую историю и множество функций редактора, которые могут быть привязаны к специальным сочетаниям клавиш.
Как bash и другие оболочки, fish включает два набора сочетаний клавиш (или привязок клавиш): один, вдохновленный текстовым редактором Emacs, и другой — редактором Vi. По умолчанию используется режим редактирования Emacs. Вы можете переключиться в режим Vi, выполнив fish_vi_key_bindings, а вернуться обратно с помощью fish_default_key_bindings. Вы также можете создать свои собственные привязки клавиш, создав функцию и установив значение переменной fish_key_bindings в её имя. Например:
function fish_hybrid_key_bindings --description \
"Vi-style bindings that inherit emacs-style bindings in all modes"
for mode in default insert visual
fish_default_key_bindings -M $mode
end
fish_vi_key_bindings --no-erase
end
set -g fish_key_bindings fish_hybrid_key_bindings
Хотя сочетания клавиш, включенные в fish, включают многие из сокращений, популярных в соответствующих текстовых редакторах, они не являются полным их воплощением. Они включают сочетание клавиш для открытия текущей командной строки в вашем предпочтительном редакторе (Alt+E по умолчанию), если вам нужна полная функциональность вашего редактора.
Команды режима Emacs
Для включения режима Emacs используйте fish_default_key_bindings. Это также значение по умолчанию.
- Home или Control+A перемещает курсор в начало строки.
- End или Control+E перемещает курсор в конец строки. Если курсор уже находится в конце строки, и доступна автозамена, End или Control+E принимает автозамену.
- Control+B, Control+F перемещает курсор на один символ влево или вправо или принимает автозамену так же, как общие сочетания клавиш ← (влево) и → (вправо) (которые также доступны).
- Control+N, Control+P перемещает курсор вверх/вниз или по истории, как и общие сочетания клавиш со стрелками вверх и вниз.
- Delete или Backspace удаляет по одному символу вперед или назад соответственно. Это также относится к Control+H, которое ничем не отличается от backspace.
- Alt+Backspace удаляет одно слово назад.
- Alt+< перемещает курсор в начало командной строки, Alt+> перемещает в конец.
- Control+K удаляет от курсора до конца строки (перемещая его в Буфер обмена (Кольцо убитых)).
- Escape и Control+G отменяют текущую операцию. Непосредственно после однозначного завершения это отменяет его.
- Alt+C приводит текущее слово к верхнему регистру.
- Alt+U переводит текущее слово в верхний регистр.
- Control+T меняет местами два последних символа.
- Alt+T меняет местами два последних слова.
- Control+Z, Control+_ (Control+/ на некоторых терминалах) отменяет последнее редактирование строки.
- Alt+/ отменяет последнюю отмену.
- Control+R открывает историю в просмотрщике. Это отобразит записи истории, соответствующие поиску, по несколько за раз. Нажатие Control+R еще раз выполнит поиск более ранних записей, нажатие Control+S (иначе переключает поиск в просмотрщике) перейдет к более новым записям. Поле поиска всегда будет выделено.
Вы можете изменить эти сочетания клавиш с помощью встроенной команды bind.
Команды режима Vi
Режим Vi позволяет использовать команды в стиле Vi в командной строке. Изначально активен режим вставки. Esc переключает на режим команд. Команды, доступные в режимах команд, вставки и визуального выбора, описаны ниже. Режим Vi использует некоторые сочетания клавиш с режимом Emacs.
Для включения режима vi используйте fish_vi_key_bindings. Также возможно добавить все сочетания клавиш из режима emacs в режим vi, используя что-то вроде:
function fish_user_key_bindings
# Execute this once per mode that emacs bindings should be used in
fish_default_key_bindings -M insert
# Then execute the vi-bindings so they take precedence when there's a conflict.
# Without --no-erase fish_vi_key_bindings will default to
# resetting all bindings.
# The argument specifies the initial mode (insert, "default" or visual).
fish_vi_key_bindings --no-erase insert
end
Когда активен режим vi, функция fish_mode_prompt отобразит индикатор режима слева от строки подсказки. Чтобы отключить эту функцию, переопределите её пустой функцией. Для отображения режима в другом месте (например, в правой части строки подсказки) используйте вывод функции fish_default_mode_prompt.
Если сочетание клавиш меняет режим, оно перерисует индикатор режима, если он существует, и остальную часть строки подсказки, если он не существует. Таким образом, если вам нужен индикатор режима в fish_prompt, вам нужно очистить fish_mode_prompt, например, добавив пустой файл в ~/.config/fish/functions/fish_mode_prompt.fish. (Сочетания клавиш, изменяющие режим, должны вызывать функцию repaint-mode bind, см. bind)
Функция fish_vi_cursor будет использоваться для изменения формы курсора в зависимости от режима в поддерживаемых терминалах. Следующий фрагмент кода можно использовать для ручного конфигурирования курсора после включения режима vi:
# Emulates vim's cursor shape behavior # Set the normal and visual mode cursors to a block set fish_cursor_default block # Set the insert mode cursor to a line set fish_cursor_insert line # Set the replace mode cursors to an underscore set fish_cursor_replace_one underscore set fish_cursor_replace underscore # Set the external cursor to a line. The external cursor appears when a command is started. # The cursor shape takes the value of fish_cursor_default when fish_cursor_external is not specified. set fish_cursor_external line # The following variable can be used to configure cursor shape in # visual mode, but due to fish_cursor_default, is redundant here set fish_cursor_visual block
Кроме того, blink можно добавить после каждого параметра формы курсора, чтобы установить мигающий курсор указанной формы.
Fish знает формы «block», «line» и «underscore», другие значения будут проигнорированы.
Если форма курсора не изменяется после установки вышеперечисленных переменных, скорее всего, ваш эмулятор терминала не поддерживает необходимые возможности. Также возможно, что fish_vi_cursor некорректно определил возможности вашего терминала (например, если вы используете tmux). В этом случае вы можете принудительно заставить fish_vi_cursor установить форму курсора, задав $fish_vi_force_cursor в config.fish. Для применения изменений необходимо перезапустить fish. Если проблема с формой курсора остаётся после этого, это почти наверняка проблема с вашим эмулятором терминала, а не с fish.
Режим команд
Режим команд также известен как нормальный режим.
- h перемещает курсор влево.
- l перемещает курсор вправо.
- k и j ищут в истории команд предыдущую/следующую команду, содержащую строку, указанную в командной строке до начала поиска. Если командная строка была пустой в момент начала поиска, все команды подходят. Подробнее об поиске в истории см. в разделе история. В многострочных командах они перемещают курсор вверх и вниз соответственно.
- i переходит в режим вставки в текущей позиции курсора.
- Shift+I переходит в режим вставки в начале строки.
- v переходит в режим визуального выбора в текущей позиции курсора.
- a переходит в режим вставки после текущей позиции курсора.
- Shift+A переходит в режим вставки в конце строки.
- o вставляет новую строку под текущей и переходит в режим вставки
- O (заглавная “o”) вставляет новую строку над текущей и переходит в режим вставки
- 0 (ноль) перемещает курсор в начало строки (оставаясь в режиме команд).
- d+d удаляет текущую строку и помещает её в Буфер обмена (Кольцо вырезания).
- Shift+D удаляет текст после текущей позиции курсора и помещает его в Буфер обмена (Кольцо вырезания).
- p вставляет текст из Буфера обмена (Кольцо вырезания).
- u отменяет последнее изменение командной строки.
- Control+R повторяет последнее изменение.
- [ и ] ищут в истории команд предыдущий/следующий токен, содержащий токен под курсором до начала поиска. Подробнее об поиске в истории см. в разделе история.
- / открывает историю в просмотрщике. Это покажет записи истории, соответствующие поиску, по несколько за раз. Нажатие ещё раз будет искать более ранние записи, нажатие Control+S (иначе переключает поиск в просмотрщике) перейдёт к более новым записям. Поисковая строка всегда будет выделена.
- Backspace перемещает курсор влево.
- g / G перемещает курсор в начало/конец командной строки соответственно.
- :q завершает работу fish.
Режим вставки
- Escape переходит в режим команд.
- Backspace удаляет один символ слева.
Режим визуального выбора
- ← (влево) и → (вправо) расширяют выделение назад/вперед на один символ.
- h перемещает курсор влево.
- l перемещает курсор вправо.
- k перемещает курсор вверх.
- j перемещает курсор вниз.
- b и w расширяют выделение назад/вперед на одно слово.
- d и x перемещают выделение в Буфер обмена (Кольцо вырезания) и переходят в режим команд.
- Escape и Control+C переходят в режим команд.
- c и s удаляют выделение и переключаются в режим вставки.
- X перемещает всю строку в Буфер обмена (Кольцо вырезания) и переходит в режим команд.
- y копирует выделение в Буфер обмена (Кольцо вырезания) и переходит в режим команд.
- ~ переключает регистр (верхний/нижний) выделенного текста и переходит в режим команд.
- "*y копирует выделение в буфер обмена и переходит в режим команд.
Настраиваемые привязки
Помимо стандартных привязок, перечисленных здесь, вы также можете определить свои собственные с помощью bind:
# Just clear the commandline on control-c bind \cc 'commandline -r ""'
Разместите bind инструкции в config.fish или в функции, называемой fish_user_key_bindings.
Если вы передумаете относительно привязки и захотите вернуться к значениям по умолчанию Fish, просто удалите её:
bind --erase \cc
Fish запоминает свои предварительные настройки привязок, поэтому они будут действовать снова. Это избавит вас от необходимости запоминать их прежние значения и добавлять их вручную.
Если вы используете привязки vi, обратите внимание, что bind по умолчанию будут привязаны к клавишам в режиме команд. Чтобы привязать что-то в режиме ввода:
bind --mode insert \cc 'commandline -r ""'
Последовательности нажатий клавиш
Терминал сообщает Fish о нажатых вами клавишах, отправляя некоторые последовательности байтов для описания этих нажатий. Для некоторых клавиш это просто — нажатие a означает, что терминал отправляет «a». В других случаях это сложнее, и терминалы по-разному передают данные.
В таких случаях fish_key_reader может показать вам, как записать последовательность нажатий клавиш для вашего терминала. Просто запустите его и нажмите интересующие вас клавиши:
> fish_key_reader # pressing control-c Press a key: Press [ctrl-C] again to exit bind \cC 'do something' > fish_key_reader # pressing the right-arrow Press a key: bind \e\[C 'do something'
Обратите внимание, что некоторые комбинации клавиш неразличимы или не могут быть отключены. Например, сочетание Control-i одинаково с клавишей Tab. Это ограничение терминала, и Fish ничего с этим не может сделать. Когда fish_key_reader выводит одну и ту же последовательность для двух разных клавиш, это означает, что ваш терминал отправляет одну и ту же последовательность для них.
Кроме того, Esc эквивалентно Alt в терминале. Чтобы отличить нажатие Esc, за которым следует другая клавиша, от нажатия Alt и этой клавиши (или последовательности, отправляемой клавишей), Fish ожидает некоторое время после получения символа Esc. Это настраивается через переменную fish_escape_delay_ms.
Если вы хотите, чтобы нажатие Esc, за которым следует символ, считалось Alt+этим символом, установите это значение выше, например:
set -g fish_escape_delay_ms 100
Аналогично, для устранения неоднозначности других нажатий клавиш, где вы привязали подпоследовательность и более длинную последовательность, Fish использует fish_sequence_key_delay_ms:
# This binds "jk" to switch to normal mode in vi-mode. # If you kept it like that, every time you press "j", # fish would wait for a "k" or other key to disambiguate bind -M insert -m default jk cancel repaint-mode # After setting this, fish only waits 200ms for the "k", # or decides to treat the "j" as a separate sequence, inserting it. set -g fish_sequence_key_delay_ms 200
Копирование и вставка (кольцо убитых)
Fish использует кольцо убитых в стиле Emacs для копирования и вставки. Например, используйте Control+K (kill-line) для вырезания текста от текущей позиции курсора до конца строки. Вырезанная строка (в стиле Emacs — убитая) помещается в список убитых, называемый кольцом убитых. Для вставки последнего значения из кольца убитых (в стиле Emacs — вытаскивание) используйте Control+Y (функция ввода yank). После вставки используйте Alt+Y (yank-pop) для перехода к предыдущему элементу кольца убитых.
Поддержка копирования и вставки извне также реализована, как через привязки Control+X / Control+V (функции fish_clipboard_copy и fish_clipboard_paste [2]), так и через функцию вставки терминала, для которой Fish включает «режим вставки в скобках», чтобы отличать вставку от ввода текста вручную. Кроме того, при вставке внутри одинарных кавычек вставленные одинарные кавычки и обратные слэши автоматически экранируются, чтобы результат можно было использовать как единый токен, просто закрыв кавычки после. Элементы кольца убитых хранятся в переменной fish_killring.
Команды begin-selection и end-selection (не привязаны по умолчанию; используются для выделения в визуальном режиме vi) управляют выделением текста вместе с командами перемещения курсора, которые расширяют текущее выделение. Переменная fish_cursor_selection_mode может использоваться для настройки того, должно ли это выделение включать символ под курсором (inclusive) или нет (exclusive). По умолчанию значение exclusive, что хорошо работает с любыми формами курсора. Для режима vi, и особенно для форм курсора block или underscore, вы можете предпочесть inclusive.
Они зависят от внешних инструментов. В настоящее время поддерживаются xsel, xclip, wl-copy/wl-paste и pbcopy/pbpaste.
Редактирование многострочных команд
Редактор командной строки Fish может использоваться для работы с командами, состоящими из нескольких строк. Существует три способа сделать так, чтобы команда занимала более одной строки:
- Нажатие клавиши Enter при незакрытом блоке команд, например, когда одна или несколько команд блоков, таких как
for,beginилиif, не имеют соответствующей команды end. - Нажатие Alt+Enter вместо нажатия клавиши Enter.
- Вставка символа обратного слэша (
\) перед нажатием клавиши Enter, чтобы экранировать символ перевода строки.
Редактор командной строки Fish работает одинаково в однострочном и многострочном режимах. Для перемещения между строками используйте клавиши со стрелками влево и вправо и другие подобные сочетания клавиш.
Поисковая история команд
После выполнения команды она запоминается в списке истории. Все дублируемые элементы истории автоматически удаляются. Нажимая клавиши со стрелками вверх и вниз, вы можете искать вперед и назад в истории. Если текущая строка команды не пустая при запуске поиска по истории, отображаются только команды, содержащие введенную строку.
Нажатие Alt+↑ и Alt+↓ также выполняет поиск по истории, но вместо поиска по всей команде, каждая команда разбивается на отдельные элементы, как это делается перед выполнением, и история ищется по элементу, соответствующему элементу под курсором.
Для более сложных поисков вы можете нажать Ctrl+R, чтобы открыть просмотрщик, который позволит вам искать в истории. Он отображает ограниченное количество записей на одной странице, нажмите Ctrl+R [3] снова, чтобы перейти к следующей странице, и Ctrl+S [4], чтобы перейти к предыдущей странице. Вы можете изменить текст для уточнения поиска.
Поиск по истории нечувствителен к регистру, если только строка поиска не содержит заглавных букв. Вы можете остановить поиск, чтобы отредактировать строку поиска, нажав Esc или Page Down.
Добавление пробела в начало строки команды предотвращает сохранение всей строки в истории. Она по-прежнему доступна для вызова до выполнения следующей команды, но не будет сохранена на диске. Это позволяет исправлять опечатки и подобные ошибки.
По умолчанию история команд хранится в файле ~/.local/share/fish/fish_history (или $XDG_DATA_HOME/fish/fish_history, если установлена соответствующая переменная). Однако вы можете установить переменную окружения fish_history, чтобы изменить имя сессии истории (что приведет к созданию файла <session>_history); как до запуска оболочки, так и во время работы оболочки.
См. команду history для других операций.
Примеры:
Чтобы найти предыдущие записи, содержащие слово «make», введите make в консоли и нажмите клавишу со стрелкой вверх.
Если в командной строке отображается cd m, поместите курсор над символом m и нажмите Alt+↑, чтобы найти ранее введённые слова, содержащие «m».
Или другая привязка, которая запускает функцию ввода history-pager. См. bind для списка.
Или другая привязка, которая запускает функцию ввода pager-toggle-search.
© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.7/interactive.html