Найти в Дзене
Новости linux

Fish Shell 4: переход на Rust, новые функции и улучшения для пользователей и разработчиков

Fish Shell 4: переход на Rust, новые функции и улучшения для пользователей и разработчиков
Fish Shell 4: переход на Rust, новые функции и улучшения для пользователей и разработчиков

Командная оболочка Fish Shell, известная своей простотой и удобством для работы в командной строке, представила четвертую версию — Fish Shell 4. Этот релиз стал знаковым, так как оболочка была полностью переписана на языке Rust. Несмотря на масштабные изменения в кодовой базе, пользователи не заметят кардинальных перемен: привычные команды, настройки и взаимодействия остались прежними. Однако под капотом произошли значительные улучшения, направленные на повышение производительности, безопасности и удобства.

Что нового в Fish Shell 4?

  • Переход на Rust Одним из главных изменений стал переход на язык программирования Rust. Это решение позволило улучшить производительность и безопасность оболочки, сохранив при этом привычный пользовательский опыт. Разработчики подчеркивают, что основной целью перехода было улучшение внутренней архитектуры, а не пересмотр функциональности.
  • Улучшенные привязки клавиш
  • Fish Shell 4 получила обновленную систему привязки клавиш, которая стала более гибкой и интуитивной. Теперь пользователи могут настраивать сложные последовательности клавиш, заменяя их на более удобные команды, например, `bind ctrl-right`. Также добавлена поддержка протокола Kitty и функции `modifyOtherKey`, что позволяет оболочке корректно обрабатывать управляющие последовательности, которые ранее могли вызывать конфликты.

Совместимость с терминалами

Новая версия Fish Shell автоматически использует последовательности OSC 133 для вывода подсказок и результатов команд. Это улучшает синхронизацию с различными терминалами, устраняя необходимость в дополнительных скриптах для интеграции. Также были стандартизированы изменения курсора в vi-режиме, что делает работу в разных окружениях более предсказуемой.

Улучшения для работы с длинными командами

Fish Shell 4 теперь корректно обрабатывает длинные командные строки, прокручивая их вместо некорректного отображения. Это особенно полезно при работе с многострочными командами или сложными скриптами. Кроме того, изменения, вызванные привязками командной строки, сразу становятся видимыми, что упрощает процесс написания и отладки скриптов.

Новые функции для пользователей

Улучшенный поиск по истории

Функция поиска по истории, впервые представленная в Fish 3.6, была значительно доработана. Теперь пользователи могут использовать синтаксис `glob` для более точной фильтрации записей. Поиск ограничивается текущей командой, что упрощает восстановление сложных многострочных команд.

Обновленная тема по умолчанию

Тема по умолчанию получила небольшие, но важные изменения. Команды теперь отображаются в "нормальном" цвете терминала вместо трудного для чтения синего. Пользователи могут сохранить свои текущие настройки, если не перезагрузят тему вручную через `fish_config`.

Самостоятельная установка

Fish Shell 4 теперь поддерживает самостоятельную установку, что позволяет запускать оболочку на серверах без прав администратора. После компиляции можно использовать единый бинарный файл, который извлекает все необходимые компоненты (функции, man-страницы и инструмент веб-конфигурации) в домашний каталог. Это особенно полезно для сред, где отсутствует доступ к пакетному менеджеру.

Исключение команд из истории

Долгожданная функция исключения команд из истории теперь доступна. Пользователи могут определить функцию `fish_should_add_to_history`, чтобы указать, какие команды следует сохранять. Исключенные команды временно остаются доступными для повторного использования, но удаляются после выполнения следующей команды.

Улучшения для разработчиков скриптов

Fish Shell 4 предлагает несколько новых возможностей для разработчиков скриптов:

  1. Команда `string match` теперь поддерживает опцию `--max-matches`, позволяющую ограничить количество обрабатываемых совпадений.
  2. Циклы `for` больше не запоминают локальные переменные из предыдущих итераций.
  3. Команда `set` получила опцию `--no-event` для подавления событий изменения переменных.
  4. Команда `time` теперь измеряет время выполнения с учетом подстановок команд.
  5. Команда `complete --erase` полностью отключает автозагрузку завершений для указанных команд.

Заключение

Fish Shell 4 представляет собой значительный шаг вперед благодаря переходу на Rust, улучшенной совместимости с терминалами и множеству новых функций. Эти изменения делают оболочку еще более удобной и мощной как для повседневного использования, так и для разработки скриптов. Обновление обещает стать одним из самых ожидаемых в сообществе пользователей командной строки.

Группа: Настройка и новости linux

Тема: Linux центр Крылья
Что думаете вы, дорогие наши подписчики? Делитесь своими впечатлениями в комментариях