Spec-Zone.ru › Fish 3.3

Интерактивное использование

Fish гордится своей удобством в интерактивном режиме. Это благодаря нескольким функциям, которые мы объясним в следующих разделах.

Fish используется путём ввода команд на языке fish, см. Язык Fish для получения информации об этом.

Помощь

Fish обладает обширной системой помощи. Используйте команду help, чтобы получить помощь по конкретной теме или команде. Например, написание help syntax отобразит раздел синтаксиса этой документации.

Fish также имеет страницы справки для своих команд и переводит страницы помощи в страницы man. Например, 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).

Для принятия автозаполнения (заменяя содержимое командной строки), нажмите → или Control+F. Для принятия первого предложенного слова нажмите Alt+→ или Alt+F. Если автозаполнение не то, что вам нужно, просто проигнорируйте его: оно не будет выполнено, пока вы его не примете.

Автозаполнение — мощный способ быстро вызвать часто используемые команды, набрав первые несколько символов. Это также эффективный способ перемещения по иерархии каталогов.

Автодополнение по вводу (Tab Completion)

Автодополнение по вводу — это экономия времени в любом современном оболочке. Когда вы нажимаете Tab, Fish пытается угадать остальную часть слова под курсором. Если он найдёт только одну возможность, он вставляет её. Если он находит больше, он вставляет самую длинную однозначную часть, а затем открывает меню ( «страничник»), которое вы можете использовать для навигации и поиска того, что вам нужно.

Страничник можно просматривать с помощью клавиш со стрелками, Page Up/Page Down, Tab или Shift+Tab. Нажатие Control+S (привязка pager-toggle-search — / в режиме vi) откроет меню поиска, которое можно использовать для фильтрации списка.

Fish предоставляет некоторые универсальные дополнения:

  • Команды (встроенные команды, функции и обычные программы).
  • Имена переменных оболочки.
  • Имена пользователей для расширения тильды.
  • Имена файлов, даже в строках с подстановками, таких как * и **.

Он также предоставляет большое количество программно-специфичных дополнений, написанных на языке скриптов. Большинство этих дополнений — простые параметры, такие как параметр -l для ls, но некоторые более сложные. Например:

  • Программы man и whatis отображают все установленные страницы справки в качестве дополнений.
  • Программа make использует все цели в файле Makefile в текущем каталоге в качестве дополнений.
  • Команда mount использует все точки монтирования, указанные в fstab, в качестве дополнений.
  • Команда ssh использует все хосты, сохранённые в файле known_hosts, в качестве дополнений. (См. документацию ssh для получения дополнительной информации).
  • Команда su отображает пользователей в системе.
  • Команды apt-get, rpm и yum отображают установленные или устанавливаемые пакеты.

Вы также можете написать свои собственные дополнения или установить те, которые вы получили от кого-то другого. Для этого см. Написание собственных дополнений.

Выделение синтаксиса

Fish интерпретирует командную строку по мере ввода и использует выделение синтаксиса для предоставления обратной связи. Самой важной обратной связью является обнаружение потенциальных ошибок. По умолчанию ошибки отмечаются красным цветом.

Обнаруженные ошибки включают:

  • Отсутствующие команды.
  • Чтение из или добавление в несуществующий файл.
  • Неправильное использование перенаправлений вывода.
  • Несоответствующие скобки.

Когда курсор находится над скобкой или кавычкой, Fish также выделяет соответствующую скобку или кавычку.

Для настройки выделения синтаксиса можно установить переменные среды, перечисленные в разделе Переменные для изменения цветов выделения.

Переменные выделения синтаксиса

Цвета, используемые Fish для выделения синтаксиса, можно настроить, изменив значения различных переменных. Значение этих переменных может быть одним из цветов, принятых командой set_color. Также принимаются модификаторы переключателей, принятые set_color , такие как --bold, --dim, --italics, --reverse и --underline.

Пример: чтобы ошибки выделялись красным цветом, используйте:

set fish_color_error red --bold

Доступны следующие переменные для изменения цветов выделения в fish:

Переменная

Значение

fish_color_normal

цвет по умолчанию

fish_color_command

команды, такие как echo

fish_color_keyword

ключевые слова, такие как if — это падает на цвет команды, если не задано

fish_color_quote

строки в кавычках, такие как "abc"

fish_color_redirection

перенаправления ввода-вывода, такие как >/dev/null

fish_color_end

разделители процессов, такие как ';' и '&'

fish_color_error

синтаксические ошибки

fish_color_param

обычные параметры команд

fish_color_comment

комментарии, такие как '# важное'

fish_color_selection

выделенный текст в режиме визуального ввода vi

fish_color_operator

операторы расширения параметров, такие как '*' и '~'

fish_color_escape

экранирование символов, такие как 'n' и 'x70'

fish_color_autosuggestion

автозаполнение (предлагаемая остальная часть команды)

fish_color_cwd

текущий рабочий каталог в стандартном приглашении

fish_color_user

имя пользователя в стандартном приглашении

fish_color_host

имя хоста в стандартном приглашении

fish_color_host_remote

имя хоста в стандартном приглашении для удалённых сессий (например, ssh)

fish_color_cancel

индикатор '^C' при отмене команды

fish_color_search_match

совпадения в поиске по истории и выбранные элементы страничника (только фон)

Если переменная не задана, Fish обычно пытается $fish_color_normal, за исключением $fish_color_keyword, где он пытается $fish_color_command в первую очередь.

Переменные цвета страничника

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

Переменные, влияющие на цвета страничника:

Переменная

Значение

fish_pager_color_progress

строка прогресса в левом нижнем углу

fish_pager_color_background

цвет фона строки

fish_pager_color_prefix

строка префикса, т.е. строка, которая должна быть дополнена

fish_pager_color_completion

само дополнение, т.е. предлагаемая остальная часть строки

fish_pager_color_description

описание дополнения

fish_pager_color_selected_background

фон выбранного дополнения

fish_pager_color_selected_prefix

префикс выбранного дополнения

fish_pager_color_selected_completion

суффикс выбранного дополнения

fish_pager_color_selected_description

описание выбранного дополнения

fish_pager_color_secondary_background

фон каждой второй невыбранной строки

fish_pager_color_secondary_prefix

префикс каждой второй невыбранной строки

fish_pager_color_secondary_completion

суффикс каждой второй невыбранной строки

fish_pager_color_secondary_description

описание каждой второй невыбранной строки

Когда переменные secondary или selected не установлены, используются обычные переменные, за исключением $fish_pager_color_selected_background, где фон $fish_color_search_match пробовался в первую очередь.

Сокращения

Чтобы избежать лишнего набора, часто используемую команду, такую как git checkout, можно сократить до gco с помощью команды abbr.

abbr -a gco git checkout

После ввода gco и нажатия Space или Enter в командной строке появится весь текст git checkout.

Это альтернатива псевдонимам, и имеет преимущество в том, что вы видите фактическую команду перед её использованием, и фактическая команда будет сохранена в истории.

Настраиваемое заголовок

При использовании большинства виртуальных терминалов можно задать сообщение, отображаемое в строке заголовка окна терминала. Это можно сделать автоматически в fish, определив функцию fish_title. Функция fish_title выполняется до и после выполнения новой команды или вывода её в фоновый режим, а вывод используется в качестве сообщения строки заголовка. Встроенная функция status current-command всегда возвращает имя задания, которое должно быть выведено в фоновый режим (или fish, если управление возвращается в оболочку) при вызове функции fish_prompt <cmd-fish_prompt>. Первый аргумент функции fish_title будет содержать самую последнюю выполненную команду в фоновом режиме в виде строки, начиная с fish 2.2.

Примеры: Значение заголовка fish по умолчанию:

function fish_title
    echo (status current-command) ' '
    pwd
end

Для отображения последней команды в заголовке:

function fish_title
    echo $argv[1]
end

Настраиваемая строка подсказки

Когда fish ожидает ввода, он отображает подсказку, вычисляя функции fish_prompt и fish_right_prompt. Вывод первой отображается слева, а вывод второй — справа от терминала. Вывод функции fish_mode_prompt будет добавлен слева, хотя функция по умолчанию делает это только в режиме vi-mode.

Настраиваемое приветствие

Если существует функция с именем fish_greeting, она будет запущена при входе в интерактивный режим. В противном случае, если существует переменная среды с именем fish_greeting, она будет напечатана.

Режим конфиденциальности

Если $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 и Vi, потому что они не являются привязками к редактированию текста или потому что то, что делает Vi/Vim для определённой клавиши, не имеет смысла для оболочки.

  • Tab завершает текущий токен. Shift+Tab завершает текущий токен и запускает режим поиска в просмотрщике.
  • ← (влево) и → (вправо) перемещают курсор влево или вправо на один символ. Если курсор уже находится в конце строки, а доступна автоподсказка, → принимает автоподсказку.
  • Enter выполняет текущую команду или вставляет новую строку, если она еще не завершена (например, отсутствует ) или end).
  • Alt+Enter вставляет новую строку в позиции курсора.
  • Alt+← и Alt+→ перемещают курсор на одно слово влево или вправо (до следующего пробела или знака препинания), или перемещают вперед/назад в истории команд, если командная строка пуста. Если курсор уже находится в конце строки, а доступна автоподсказка, Alt+→ (или Alt+F) принимает первое слово из подсказки.
  • Control+← и Control+→ перемещают курсор на одно слово влево или вправо. Эти сочетания принимают одно слово из автоподсказки — ту часть, над которой они будут перемещаться.
  • Shift+← и Shift+→ перемещают курсор на одно слово влево или вправо, не останавливаясь на знаках препинания. Эти сочетания принимают одно большое слово из автоподсказки.
  • ↑ (вверх) и ↓ (вниз) (или Control+P и Control+N для любителей Emacs) ищут в истории команд предыдущую/следующую команду, содержащую строку, указанную в командной строке до начала поиска. Если командная строка была пустой в начале поиска, все команды совпадают. См. раздел поиска в истории для получения дополнительной информации о поиске в истории.
  • Alt+↑ и Alt+↓ ищут в истории команд предыдущий/следующий токен, содержащий токен под курсором до начала поиска. Если командная строка не находилась на токене в начале поиска, все токены совпадают. См. раздел поиска в истории для получения дополнительной информации о поиске в истории.
  • Control+C отменяет всю строку.
  • Control+D удаляет один символ справа от курсора. Если командная строка пуста, Control+D выйдет из fish.
  • Control+U перемещает содержимое от начала строки до курсора в буфер обмена.
  • Control+L очищает и перерисовывает экран.
  • Control+R ищет в истории, если в командной строке что-то есть. Это в основном для облегчения перехода с других оболочек, где ctrl+r запускает поиск в истории.
  • Control+W перемещает предыдущий компонент пути (все до предыдущего "/", ":" или "@") в буфер обмена.
  • Control+X копирует текущий буфер в буфер обмена системы, Control+V вставляет содержимое буфера обмена.
  • Alt+D перемещает следующее слово в буфер обмена.
  • Alt+H (или F1) отображает страницу справки для текущей команды, если она существует.
  • Alt+L отображает содержимое текущей директории, если курсор не находится над аргументом директории, в противном случае будет показано содержимое этой директории.
  • Alt+O открывает файл в позиции курсора в просмотрщике.
  • Alt+P добавляет строку &| less; в конец задачи под курсором. Результатом является то, что вывод команды будет отображён в просмотрщике.
  • Alt+W выводит краткое описание команды под курсором.
  • Alt+E редактирует текущую командную строку в внешнем редакторе. Редактор выбирается из первого доступного из переменных $VISUAL или $EDITOR.
  • Alt+V То же самое, что и Alt+E.
  • Alt+S Добавляет sudo в начало текущей командной строки. Если командная строка пустая, добавляет sudo в начало последней командной строки.
  • Control+Space Вставляет пробел без расширения сокращения. Для режима vi это относится только к режиму вставки.

Команды режима Emacs

  • Home или Control+A перемещает курсор в начало строки.
  • End или Control+E перемещает курсор в конец строки. Если курсор уже находится в конце строки, а доступна автоподсказка, End или Control+E принимает автоподсказку.
  • Control+B, Control+F перемещают курсор на один символ влево или вправо или принимают автоподсказку, как и общие сочетания ← (влево) и → (вправо) (которые также доступны).
  • Control+N, Control+P перемещают курсор вверх/вниз или по истории, как и общие сочетания стрелок вверх и вниз.
  • Delete или Backspace удаляет один символ вперед или назад соответственно.
  • Control+K перемещает содержимое от курсора до конца строки в буфер обмена.
  • Alt+C приводит текущее слово к верхнему регистру.
  • Alt+U приводит текущее слово к верхнему регистру.
  • Control+T меняет местами два последних символа.
  • Alt+T меняет местами два последних слова.
  • Control+Z, Control+_ (Control+/ на некоторых терминалах) отменяет последнее изменение строки.
  • Alt+/ отменяет последнее действие отмены.

Вы можете изменить эти сочетания клавиш с помощью встроенной команды bind.

Команды режима Vi

Режим Vi позволяет использовать команды в стиле Vi в командной строке. Изначально активен режим вставки insert mode. Escape переключает в режим command mode. Доступные команды в режимах команд, вставки и визуального редактирования описаны ниже. Режим Vi разделяет некоторые сочетания клавиш с режимом Emacs mode.

Также можно добавить все сочетания клавиш режима emacs-mode в режим vi-mode, используя что-то вроде:

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-mode активен, функция 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-mode:

# 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 cursor to an underscore
set fish_cursor_replace_one underscore
# 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_vi_cursor некорректно определил возможности вашего терминала (например, если вы используете tmux). В этом случае вы можете принудительно заставить fish_vi_cursor установить форму курсора, установив $fish_vi_force_cursor в config.fish. Для того, чтобы изменения вступили в силу, необходимо перезапустить fish. Если установка формы курсора по-прежнему не работает, это, скорее всего, проблема с вашим терминальным эмулятором, а не с fish.

Режим команд

Режим команд также известен как нормальный режим.

  • H перемещает курсор влево.
  • L перемещает курсор вправо.
  • I переходит в режим вставки в текущей позиции курсора.
  • V переходит в визуальный режим в текущей позиции курсора.
  • A переходит в режим вставки после текущей позиции курсора.
  • Shift+A переходит в режим вставки в конце строки.
  • 0 (ноль) перемещает курсор в начало строки (оставаясь в режиме команд).
  • D+D удаляет текущую строку и помещает её в Буфер обмена (Кольцо вырезания).
  • Shift+D удаляет текст после текущей позиции курсора и помещает его в Буфер обмена (Кольцо вырезания).
  • P вставляет текст из Буфера обмена (Кольцо вырезания).
  • U просмотр истории команд в обратном порядке.
  • [ и ] поиск в истории команд по предыдущему/следующему токену, содержащему токен под курсором до начала поиска. Дополнительная информация о поиске в истории находится в разделе история.
  • Backspace перемещает курсор влево.

Режим вставки

  • Escape переходит в режим команд.
  • Backspace удаляет символ слева.

Визуальный режим

  • ← (влево) и → (вправо) расширяют выделение назад/вперед на один символ.
  • B и W расширяют выделение назад/вперед на одно слово.
  • D и X помещают выделение в Буфер обмена (Кольцо вырезания) и переходят в режим команд.
  • Escape и Control+C переходят в режим команд.
  • c и s удаляют выделение и переключаются в режим вставки
  • d и x удаляют выделение и переключаются в нормальный режим
  • X удаляет всю строку и переключается в нормальный режим
  • y копирует выделение и переключается в нормальный режим
  • ~ переключает регистр (верхний/нижний) выделенного текста и переключается в нормальный режим
  • "*y копирует выделение в буфер обмена и переключается в нормальный режим

Настраиваемые сочетания клавиш

Помимо стандартных сочетаний клавиш, перечисленных здесь, вы также можете определить свои собственные с помощью bind:

# Just clear the commandline on control-c
bind \cc 'commandline -r ""'

Поместите bind в config.fish или в функцию под названием fish_user_key_bindings.

Последовательность клавиш (\cc) здесь зависит от вашей конфигурации, в частности от терминала. Чтобы узнать, какие последовательности клавиш отправляет терминал, используйте fish_key_reader:

> fish_key_reader # pressing control-c
Press a key:
            hex:    3  char: \cC
Press [ctrl-C] again to exit
bind \cC 'do something'

> fish_key_reader # pressing the right-arrow
Press a key:
            hex:   1B  char: \c[  (or \e)
(  0.077 ms)  hex:   5B  char: [
(  0.037 ms)  hex:   43  char: C
bind \e\[C 'do something'

Обратите внимание, что некоторые комбинации клавиш неотличимы или не могут быть переназначены. Например, control-i идентично клавише Tab. Это ограничение терминала, которое fish не может исправить.

Также Escape — это то же самое, что и Alt в терминале. Чтобы отличить нажатие Escape и затем другой клавиши от нажатия Alt и этой клавиши (или последовательности символов, которую клавиша отправляет), fish ждет определенное время после получения символа Escape. Это можно настроить с помощью переменной fish_escape_delay_ms.

Если вы хотите иметь возможность нажать Escape и затем символ, и считать это Alt+этим символом, установите значение переменной выше, например:

set -g fish_escape_delay_ms 100

Буфер обмена (Кольцо вырезания)

Fish использует кольцевой буфер обмена в стиле Emacs для копирования и вставки. Например, используйте Control+K (kill-line) для вырезания текста от текущей позиции курсора до конца строки. Вырезанная строка (в emacs-терминах - убитая, "killed") добавляется в список вырезок, называемый кольцом вырезок. Чтобы вставить последнее значение из кольца вырезок (в emacs это называется "yanking"), используйте Control+Y (функция ввода yank). После вставки используйте Alt+Y (yank-pop) для перехода к предыдущей вырезке.

Поддержка копирования и вставки извне также реализована как через сочетания клавиш Control+X / Control+V (функции fish_clipboard_copy и fish_clipboard_paste 1), так и через функцию вставки терминала, для которой fish включает режим "Bracketed Paste Mode", чтобы отличать вставку от ввода текста вручную. Кроме того, при вставке внутри одинарных кавычек вставленные одинарные кавычки и обратные слэши автоматически экранируются, чтобы результат можно было использовать как один токен, просто закрыв кавычки после вставки. Элементы кольца вырезок хранятся в переменной fish_killring.

1

Эти функции опираются на внешние инструменты. В настоящее время поддерживаются xsel, xclip, wl-copy/wl-paste и pbcopy/pbpaste.

Редактирование многострочных команд

Редактор командной строки fish позволяет работать с многострочными командами. Есть три способа сделать команду многострочной:

  • Нажатие клавиши Enter, когда блок команд не закрыт, например, когда одна или несколько команд блока, такие как for, begin или if, не имеют соответствующей команды end.
  • Нажатие Alt+Enter вместо нажатия клавиши Enter.
  • Вставка символа обратного слэша (\) перед нажатием клавиши Enter для экранирования новой строки.

Редактор командной строки fish работает точно так же в режиме одной строки и в многострочном режиме. Для перехода между строками используйте клавиши со стрелками влево и вправо и другие подобные сочетания клавиш.

Поиск в истории команд

После выполнения команды она запоминается в списке истории. Все дублирующиеся элементы истории автоматически удаляются. Нажав клавиши со стрелками вверх и вниз, можно просматривать историю вперёд и назад. Если текущая строка команды не пуста при запуске поиска в истории, отображаются только команды, содержащие введённую в строку команды строку.

Нажатие Alt+↑ и Alt+↓ также выполняет поиск в истории, но вместо поиска по всей команде, каждая команда разбивается на отдельные элементы, как и перед выполнением, и в истории ищется элемент, соответствующий элементу под курсором.

Поиск в истории не учитывает регистр, если в строке поиска нет заглавной буквы, и его можно прервать, нажав клавишу Escape.

Представление строки команды пробелом предотвращает сохранение всей строки в истории.

По умолчанию история команд хранится в файле ~/.local/share/fish/fish_history (или $XDG_DATA_HOME/fish/fish_history, если эта переменная установлена). Однако вы можете установить переменную среды fish_history, чтобы изменить имя сеанса истории (в результате чего создаётся файл <session>_history); как перед запуском оболочки, так и во время её работы.

См. команду history для других операций.

Примеры:

Чтобы найти предыдущие записи, содержащие слово 'make', введите make в консоли и нажмите клавишу со стрелкой вверх.

Если в строке команды отображается cd m, поместите курсор на символ m и нажмите Alt+↑, чтобы найти ранее введённые слова, содержащие 'm'.

Перемещение по каталогам

Текущий рабочий каталог можно отобразить с помощью команды pwd или $PWD специальной переменной.

История каталогов

Fish автоматически сохраняет историю посещенных каталогов с помощью cd, сохраняя эту историю в переменных dirprev и dirnext.

Предоставлены несколько команд для работы с этой историей каталогов:

  • dirh выводит историю
  • cdh отображает подсказку для быстрого перемещения по истории
  • prevd перемещается назад по истории. Она привязана к Alt+←
  • nextd перемещается вперёд по истории. Она привязана к Alt+→

Стек каталогов

Другая группа команд, обычно также доступная в других оболочках, таких как bash, работает со стеком каталогов. Обработка стека не автоматична и требует явных вызовов следующих команд:

  • dirs выводит стек
  • pushd добавляет каталог в верхнюю часть стека и делает его текущим рабочим каталогом
  • popd удаляет каталог из верхней части стека и изменяет текущий рабочий каталог

© 2021 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.3/interactive.html

Spec-Zone.ru

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