ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Пятница, 20 декабря, 2024

Выпущена бета-версия Fish Shell 4.0: полная переработка на Rust с ключевыми улучшениями

Выпущена бета-версия Fish Shell 4.0: полная переработка на Rust с ключевыми улучшениями

Популярная оболочка Fish только что выпустила новую бета-версию — 4.0! Это большое изменение, потому что это первая версия после полной переработки. Изначально оболочка Fish была написана на C++, но теперь она написана на Rust. Это означает, что основной код оболочки был полностью изменён.

В этом первом бета-релизе Fish shell 4.0 много изменений, как больших, так и маленьких. Вот несколько основных моментов:

 

Почему Fish Shell выбрал Rust?

Разработчики Fish Shell выбрали Rust в качестве целевого языка для переписывания по нескольким ключевым причинам.

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

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

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

В конце концов разработчики рассмотрели другие языки, но в итоге решили, что Rust подходит лучше всего.

Они исключили такие языки, как Java, Python и другие скриптовые языки, из-за опасений по поводу задержки запуска и использования памяти.

Язык Go считался неподходящим из-за обработки системного вызова fork.

Другие языки системного программирования, такие как D, Nim и Zig, считались слишком нишевыми, а это означало, что у них было меньше разработчиков и выше риск стать неактуальными в будущем.

 

Основные улучшения в бета-версии Fish Shell 4.0

Этот бета-выпуск (4.0b1) оболочки Fish включает в себя значительную переработку основного кода с C++ на Rust. Он предлагает ряд заметных улучшений и исправлений:

Во-первых, Fish теперь запрашивает кодировку клавиатуры modifyOtherKeys XTerm и прогрессивные улучшения протокола клавиатуры Kitty, которые могут позволить привязывать больше комбинаций клавиш в зависимости от поддержки терминала.

Кроме того, bind теперь поддерживает синтаксис, понятный человеку. Fish теперь можно создать в виде самоустанавливающегося двоичного файла.

Во-вторых, есть много улучшений для написания сценариев и интерактивного использования. Например, ctrl-c при вводе команды просто очистит командную строку, а не выведет ^C и новую подсказку.

Привязки теперь также могут сочетать специальные функции ввода и команды оболочки. Поиск в истории ctrl-r теперь использует синтаксис glob и работает только с заменой строки или команды в позиции курсора, что упрощает комбинирование команд из истории. Сокращения теперь можно ограничить конкретными командами.

В-третьих, есть ряд улучшений в работе с текстом, в том числе то, что история отмены больше не обрезается после каждой команды, а ctrl-v теперь удаляет управляющие символы ASCII из вставленного текста.

Также есть несколько новых или улучшенных сочетаний клавиш, в том числе alt-o для открытия текущей команды в редакторе и shift-delete для удаления текущего элемента поиска и перехода к следующему более старому элементу во время поиска по истории с помощью стрелки вверх.

Также был внесён ряд улучшений в автозаполнение, например, автозаполнение по вкладкам для конкретных команд теперь может предлагать результаты, первый символ которых — точка, а автозаполнение параметров теперь использует фильтрацию нечётких последовательностей.

Наконец, в этом выпуске улучшена поддержка терминалов, в том числе то, что Fish теперь помечает области ввода и вывода команд (с помощью OSC 133) для интеграции с терминалом и безоговорочно сообщает о рабочем каталоге (с помощью OSC 7).

Это лишь краткий обзор многочисленных изменений в этом выпуске. Более подробную информацию вы можете найти в примечаниях к выпуску на GitHub.

 

Скачать Fish 4.0b1 Beta

Этот бета-релиз — большой шаг вперёд для Fish. Интересно, что ждёт эту популярную оболочку в будущем! Если вы хотите попробовать, вы можете скачать её со страницы релизов Fish на GitHub.

Пожалуйста, обратите внимание, что это бета-версия, поэтому в ней могут быть ошибки. Если вы используете Fish для важной работы, лучше дождаться финальной версии.

Но если вам нравится пробовать что-то новое и помогать с тестированием, то вперёд, попробуйте! Вы можете сообщить о любых найденных вами проблемах на странице Fish на GitHub.

Exit mobile version