-
Notifications
You must be signed in to change notification settings - Fork 6
Home ru
Версия 6.0.1 основана на GNU Midnight Commander 4.8.33.
Основное изменение релиза — новый фреймворк панельных плагинов. Теперь содержимое панели может предоставляться динамически загружаемым плагином, а не только локальной файловой системой или встроенными VFS-модулями.
Вместе с новой архитектурой добавлены плагины для архивов, Git, Docker, Kubernetes, MongoDB, S3, FTP, SFTP, Samba и другие. Также значительно расширены возможности редактора и просмотрщика файлов, появился встроенный терминал.

Плагинная панель работает аналогично обычной файловой панели: поддерживает навигацию, просмотр файлов и стандартные операции через F4, F5 и F6.
Плагины могут добавлять:
- собственные источники данных;
- пункты в меню панелей и меню выбора диска;
- настройки и справку;
- загрузку и сохранение файлов;
- историю переходов внутри плагина.
Пользовательские плагины загружаются из ~/.local/lib/mc/panel-plugins.

Плагин arcmc позволяет открывать архивы непосредственно в панели.
Поддерживаются:
- просмотр архивов и вложенных архивов;
- добавление и удаление файлов;
- создание ZIP, 7z, TAR и CPIO;
- настройка сжатия;
- пароли и шифрование для поддерживаемых форматов;
- массовая распаковка;
- отображение прогресса, скорости и оставшегося времени;
- отмена длительных операций.
При распаковке проверяются абсолютные пути и компоненты .., чтобы содержимое архива не могло выйти за пределы выбранного каталога.

В mcview появился режим дерева для:
- JSON;
- YAML;
- XML;
- HTML.
Он доступен как в полноэкранном просмотрщике, так и в Quick View.
В режиме дерева можно раскрывать и сворачивать узлы, задавать глубину раскрытия, искать по всей структуре и копировать путь к выбранному элементу в формате, похожем на jq.
Опция mcview_structured_auto позволяет автоматически открывать поддерживаемые файлы в структурированном режиме.

Viewer теперь может работать с командами, которые не завершают вывод, например:
docker logs -f
journalctl -fДанные читаются без блокировки интерфейса и обновляются по мере поступления.
Для фильтра доступны:
- обычный поиск;
- регулярные выражения;
- учёт регистра;
- поиск целых слов;
- выбор кодировки;
- предварительная проверка выражения.
Фильтр применяется к текущему источнику данных и показывает только подходящие строки без создания второго файла или отдельного процесса.

Параметры получения журнала можно изменить непосредственно в просмотрщике, не закрывая его и не возвращаясь к панели. Можно задать количество загружаемых записей, временной интервал, получение журнала предыдущего экземпляра контейнера и режим непрерывного обновления.
Полученные данные также можно передать внешней команде для преобразования или форматирования. Эта возможность доступна как для журналов Docker в диалоге Container logs source, так и для журналов Kubernetes в диалоге Pod logs source.
Без дополнительной обработки структурированные журналы, например записи Serilog в формате JSON, могут быть неудобны для чтения:

В диалоге источника можно настроить параметры получения журнала и указать команду обработки в поле Pipe through:

После обработки данные отображаются в более удобном для чтения виде:

mcview получил поддержку ANSI-цветов и режим воспроизведения терминала.
Поддерживаются стандартные и яркие цвета, палитра 256 цветов, True Color, жирный и подчёркнутый текст, курсив и инверсия цветов.
Терминальный режим обрабатывает управляющие последовательности позиционирования, очистки экрана и областей прокрутки. Это позволяет просматривать записи script(1) и сохранённый вывод полноэкранных терминальных программ.
Режимы None, SGR и Term переключаются через F9. Отображение ANSI-цветов можно включать и отключать через Shift+F9.
Компонент mcterm добавляет интерактивную командную оболочку непосредственно в файловый менеджер.
Терминал переключается через Ctrl+O, запускается в каталоге активной панели и синхронизирует с ней текущий путь через OSC 7.
Поддерживаются:
- интерактивный ввод;
- мышь;
- переключение фокуса между панелями и терминалом;
- передача командной строки;
- отслеживание приглашения оболочки.
Эмуляция терминала выполняется собственным движком просмотрщика, без внешней библиотеки.
У редактора есть собственный фреймворк плагинов. Плагин может регистрировать действия, добавлять пункты в меню редактора и обрабатывать клавиши.
Плагины включаются и отключаются для каждого пользователя в диалоге Manage Plugins, из него же открываются настройки выбранного плагина.
В комплект входят три плагина:
- проверка орфографии;
- поддержка etags;
- навигатор ctags.
Проверка орфографии и поддержка etags вынесены из ядра редактора в плагины. Навигатор ctags добавлен впервые: переход к определениям и объявлениям, поиск символов и файлов, поиск ссылок, просмотр членов, дополнение символов и история переходов. Индексы ведутся для каждого репозитория и пересобираются из плагина.
Пользовательские плагины загружаются из ~/.local/lib/mc/editor-plugins.
mcedit умеет сворачивать многострочные блоки по скобкам {}, [] и ().
Сворачивание доступно:
- через индикатор на поле редактора;
- через меню Command;
- через
Alt+Shift+F.
Команда использует выделенную область либо определяет ближайший внешний блок относительно курсора.

Комбинация Alt+Shift+U открывает список операций undo и redo.
Для каждой группы отображаются строка, тип операции, количество символов и фрагмент изменённого содержимого. Из списка можно перейти к любой доступной точке истории.
Комбинация Alt+Shift+M открывает список записанных макросов.
Для выбранного макроса можно посмотреть последовательность действий, выполнить его, удалить или открыть соответствующее определение в mc.macros.
Если файл нельзя сохранить из-за недостатка прав, редактор предлагает повторить операцию через sudo -S tee.
Неудачная попытка не закрывает редактор и не приводит к потере текущего буфера.
Добавлено кэширование расположения символов внутри длинных строк. Это уменьшает задержки при навигации, выделении и перерисовке логов, CSV-файлов и минифицированных данных.
Git-плагин отображает коммиты, ветки и изменённые файлы. Для сравнения используется встроенный просмотрщик различий.
Репозитории можно сохранять в избранном. При выборе изменённого файла соседняя панель переходит к соответствующему файлу в рабочем каталоге.

Docker-плагин предоставляет доступ к:
- контейнерам;
- файлам контейнеров;
- образам;
- volumes;
- networks;
- mounts;
- выполнению команд;
- логам.
Поддерживаются локальные и SSH-профили. Для логов можно настроить количество строк, временной диапазон, предыдущий запуск и режим непрерывного чтения.
В комплект входит скрипт форматирования логов .NET и Serilog.

Kubernetes-плагин работает через kubectl и позволяет просматривать pods, nodes, services и workloads.
Также доступны contexts, namespaces, describe, YAML, exec, удаление ресурсов и просмотр логов.
Плагин позволяет просматривать подключения, базы данных, коллекции и документы.
Поддерживаются фильтрация, projection, сортировка, ограничение количества результатов, постраничное чтение больших коллекций и редактирование документов.
S3-плагин поддерживает загрузку, выгрузку и удаление объектов, создание buckets, просмотр метаданных и потоковое открытие объектов во Viewer.
Можно использовать совместимые хранилища, включая MinIO, Ceph и Cloudflare R2.
FTP-плагин поддерживает FTP и FTPS, active/passive mode, прокси, keepalive и настройку версии IP.
SFTP-плагин поддерживает парольную и ключевую аутентификацию, сжатие, отображение прогресса и потоковое открытие файлов.
Samba-плагин предоставляет доступ к SMB-серверам и общим ресурсам.
Пользователь может создавать собственные режимы отображения панелей и выбирать состав и ширину колонок.
Добавлены три отдельных диалога.
Key Bindings изменяет привязки клавиш и находит конфликты между ними; привязки разбиты по областям на вкладки.

Learn Keys распознаёт модификаторы, поэтому Ctrl, Alt и Shift запоминаются вместе с основной клавишей.

Key Sniffer показывает escape-последовательность, которую терминал отправляет для клавиши, вместе с сочетанием, назначенным действием и кодом клавиши.

Терминальные настройки сохраняются в:
~/.config/mc/term/<TERM>
В релиз также вошли:
- Markdown-рендеринг в Viewer;
- прямоугольное колонное выделение в редакторе;
- внутренняя реализация Diff Viewer вместо отдельного процесса
mcdiff; - фильтрация истории по мере ввода;
- копирование и вставка между строками ввода и редактором;
- использование Procyon для декомпиляции Java-классов;
- ускорение горизонтальной прокрутки очень длинных строк;
- исправление просмотра DOCX, PPTX и XLSX;
- сохранение расширений временных файлов, созданных плагинами;
- исправления навигации и восстановления формата панелей.
Версия 6.0.1 в основном посвящена четырём направлениям:
- Переходу к расширяемым панельным плагинам.
- Развитию Viewer для структурированных данных, логов и терминальных записей.
- Улучшению редактора.
- Добавлению встроенной командной оболочки.