Вышла новая версия популярного текстового редактора командной строки GNU nano 9.1. Одно из заметных изменений касается поиска. Если результат поиска удобно помещается в видимой области терминала, Nano по возможности выравнивает область просмотра по левому краю.
В новой версии также удалена поддержка старого формата текстовых файлов Mac. В частности, Nano больше не читает и не записывает файлы, в которых в качестве окончания строки используется одиночный возврат каретки. Этот устаревший формат появился еще в классической Mac OS и больше не актуален для современных macOS, Linux и других Unix-подобных систем.
Также было исправлено несколько проблем с обработкой файлов. Теперь Nano может редактировать файл с именем ~, то есть с одиночной тильдой, и выдает сообщение об ошибке, если имя файла заканчивается косой чертой. Также была улучшена обработка резервных копий. Если активна опция --backup и в приглашении WriteOut отображается [Backup], Nano всегда создает резервную копию, а в файлах резервных копий теперь используется правильная полная временная метка, а не неполная.
Также были внесены изменения в режим аварийного сохранения. Если Nano аварийно завершает работу или происходит сбой, то любой полученный .save файл больше не получает права доступа, соответствующие разрешениям исходного файла, и не переходит в собственность владельца.
В интерфейсе был убран переключатель Ctrl+T между меню WhereIs и GoToLine. Кроме того, Meta*+Insert и Meta*+Delete теперь являются допустимыми именами клавиш и могут быть переназначены в конфигурационном файле nano.
Подсветка синтаксиса также была обновлена. Определение синтаксиса языка C теперь включает несколько отсутствующих ключевых слов C++23 и улучшает подсветку шестнадцатеричных и двоичных чисел, а также логических констант.
Подсветка синтаксиса Lua теперь включает в себя новые ключевые слова, не использует давно устаревшие и лучше обрабатывает многострочные строки и экранирующие символы обратной косой черты. Подсветка синтаксиса в man-страницах также распознает синтаксис со специальными символами \[xx] .
Помимо изменений, ориентированных на пользователей, в nano 9.1 проведена масштабная внутренняя оптимизация. Она включает в себя обновление кода gnulib, более безопасную проверку ошибок, предотвращение утечек памяти, более понятные комментарии, переименование переменных и функций, а также общее улучшение исходного кода.
Более подробную информацию можно найти в объявлении. Полный список изменений доступен здесь. Nano 9.1 доступен в виде исходного кода на официальном сайте для всех, кто хочет скомпилировать его вручную. Все остальные могут дождаться, пока он появится в репозиториях их дистрибутива.
