Вышла Fish Shell 4.1 с синтаксисом Brace и временными подсказками

Fish shell 4.1 теперь доступна с временными подсказками, командами на основе фигурных скобок, более интеллектуальными автопредложениями и значительно улучшенным argparse.
Fish shell, современная оболочка Unix, разработанная для удобства пользователей и простоты в использовании, анонсировала выпуск версии 4.1 — новой версии, основанной на серии 4.0, с новыми функциями, улучшениями в написании сценариев, обновлениями совместимости с терминалами и некоторыми изменениями в поведении.
Одно из наиболее заметных изменений заключается в том, что составные команды теперь можно записывать с помощью фигурных скобок — { echo 1; echo 2 }
— так же, как это делают в других оболочках. В Fish также появились временные подсказки. Если установлена переменная fish_transient_prompt
, подсказка отображается повторно непосредственно перед выполнением команды, что позволяет поддерживать порядок на экране.
В автодополнении также появилось важное исправление. Теперь автодополнение не прерывается где-то в середине пути, а обрезается на уровне каталога. Например, при автодополнении внутри share/functions
будут отображаться …/foo.fish
и …/bar.fish
, что упрощает чтение. Кроме того, автопредложения стали более интеллектуальными: теперь они поддерживают многострочные командные строки и включают предложения из отдельных строк в многострочной истории.
Что касается скриптов, то встроенная функция argparse
получила множество улучшений. Теперь она поддерживает более строгую обработку длинных опций, лучше контролирует неизвестные аргументы, поддерживает несколько необязательных значений и хуки проверки. Были обновлены и другие встроенные функции: string pad
теперь поддерживает центрирование, psub
может объединять --suffix
с --fifo
, а read
получила опцию --tokenize-raw
.
Что касается интерактивного использования, то при вставке команд теперь автоматически удаляются начальные $
-подсказки, обратная связь при поиске в истории становится более адресной, а при удалении автоподсказок отображается только само предложение, а не вся строка.
Также были внесены изменения в сочетания клавиш: на платформах, отличных от macOS, сочетания клавиш Alt+стрелка и Alt+delete/backspace теперь работают с целыми аргументами, а не со словами, разделёнными знаками препинания. В режиме Vi также появилась поддержка инкремента и декремента с помощью Ctrl+A и Ctrl+X.
Стоит отметить, что поддержка терминала также была улучшена: теперь Fish поддерживает несколько стилей подчёркивания, в том числе фигурное, точечное и пунктирное, которые можно настраивать отдельно от цвета текста. Кроме того, была расширена поддержка мыши с помощью опции click_events
в Kitty, которая позволяет перемещать курсор и выбирать страницу с помощью кликов.
Наконец, есть несколько заметных изменений. Имена ключей в стиле Terminfo больше не используются, и Fish больше не считывает данные напрямую из базы данных Terminfo. Вместо этого он использует собственные имена ключей. Некоторые шаблоны расширения фигурных скобок, например {echo,echo}
, также больше не работают. Кроме того, set_color --background=COLOR
больше не выделяет текст жирным шрифтом по умолчанию, а значит, темы, использующие эту функцию, возможно, придётся обновить.
Для получения дополнительной информации см. журнал изменений: https://github.com/fish-shell/fish-shell/releases/tag/4.1.0.
Редактор: AndreyEx