LINUX.ORG.RU

Форк Midnight Commander c поддержкой панельных плагинов

 , , , ,


0

1

https://www.opennet.ru/opennews/art.shtml?num=66018.

Выпущен консольный файловый менеджер Midnight Commander 6.0.3 (mc6), представляющий собой форк GNU Midnight Commander 4.8.33, расширенный поддержкой панельных плагинов и поставляемый со встроенным PTY-терминалом mcterm. Интегрированный в mc6 фреймворк панельных плагинов позволяет отображать в панелях не только файловые системы, но и контейнеры, Git-репозитории, базы данных и объекты удалённых хранилищ. Код проекта написан на языке Си и распространяется под лицензией GPLv3+. Готовые пакеты подготовлены для Debian и Ubuntu, Fedora и RHEL, а также Arch Linux в форматах DEB, RPM и pkg.tar.zst. Для Gentoo дополнительно предоставлен ebuild для установки через локальный overlay.

В состав выпуска вошли плагины для работы с архивами, FTP/SFTP/FTPS, Samba, Git, Docker, Kubernetes, MongoDB и S3-совместимыми хранилищами. Плагины поддерживают стандартные файловые операции, а переработанная поддержка архивов на базе libarchive заметно (в десятки или сотни раз) ускоряет обработку больших архивов.

Во встроенный текстовый редактор mcedit добавлены возможность сворачивания блоков кода, браузер истории Undo/Redo, средства управление макросами и поддержка сохранения файлов через sudo. В разы улучшена производительность при работе с очень длинными строками.

Просмотрщик mcview получил древовидное представление JSON, YAML и XML, интерактивную фильтрацию содержимого, базовую поддержку отображения разметки Markdown и режим воспроизведения файлов с ANSI-последовательностями.

В состав включён встроенный PTY-терминал mcterm с собственным эмулятором терминала, предназначенный для замены традиционного subshell-механизма.

★★★★★

Последнее исправление: dataman (всего исправлений: 1)

переработанная поддержка архивов на базе libarchive

Выглядит пока самым полезным.

dataman ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Могу попозже написать со скриншотами, после того как соберу и потыкаю. :)

dataman ★★★★★
() автор топика

переработанная поддержка архивов на базе libarchive заметно (в десятки или сотни раз) ускоряет обработку больших архивов.

А пароль от архива туда уже можно ввести?..

hobbit ★★★★★
()

Оказывается он конфликтует с mc (пришлось удалить) и много зависимостей. Устанавливать не стал, надеюсь в mcedit когда-нибудь тоже будет сворачивание блока кода.

dmitry237 ★★★★★
()
Последнее исправление: dmitry237 (всего исправлений: 1)

Если из коробки будет нормально работать со всеми архивами и организуют нормальный поиск/фильтр, то будет полезен.

MoldAndLimeHoney ★★★
()

я на far2l давно перешел, там 7zip (наследие видовых времен) библиотеку пользуют, но быстрее чем mc.
а не недавно на коленке на ИИ сгенерировали f4 (github.com)-commander. тож по описаниям очень быстро работает с архивами.

pfg ★★★★★
()
Ответ на: комментарий от mittorn

embedded termina

Интересно, этот встроенный может жить в tty?

dmitry237 ★★★★★
()
Ответ на: комментарий от mittorn

там ещё embedded terminal под панелями

Да, уже потыкал. Он по Ctrl-L ничего не делает.

возможно он лучше тех костылей для работы в фоне, что сейчас там есть

Зато там вот такие:

    {
        const char *shell_name = g_getenv ("SHELL");
        const char *base;


        base = (shell_name != NULL) ? strrchr (shell_name, '/') : NULL;
        base = (base != NULL) ? base + 1 : shell_name;


        if (base != NULL && strcmp (base, "bash") == 0)
        {
            /* Percent-encoder for $PWD: safe chars pass through, everything
             * else becomes %XX.  Defined once and used in PROMPT_COMMAND. */
            static const char osc7_setup[] =
                "__mc_pe(){"
                " local s=$1 o= i c;"
                " for((i=0;i<${#s};i++)); do"
                " c=${s:i:1};"
                " case $c in"
                " [a-zA-Z0-9/_~.-]) o+=$c;;"
                " *) printf -v o '%s%%%02X' \"$o\" \"'$c\";;"
                " esac; done;"
                " printf '%s' \"$o\";"
                " }; \\\n"
                " if test $BASH_VERSINFO -ge 5"
                " && [[ ${PROMPT_COMMAND@a} == *a* ]] 2>/dev/null; then \\\n"
                "  PROMPT_COMMAND+=(\"printf '\\033]7;file://%s\\007'"
                " \\\"\\$(__mc_pe \\\"\\$PWD\\\")\\\"\"); \\\n"
                " else \\\n"
                "  PROMPT_COMMAND=\"${PROMPT_COMMAND:+$PROMPT_COMMAND; }"
                "printf '\\033]7;file://%s\\007'"
                " \\\"\\$(__mc_pe \\\"\\$PWD\\\")\\\"\"; \\\n"
                " fi\r";
            mcterm_enable_osc7 (t, master, osc7_setup, sizeof (osc7_setup) - 1);
        }
        else if (base != NULL && strcmp (base, "zsh") == 0)
        {
            static const char osc7_setup[] =
                " __mc_pe(){local s=$1 o='' c i;for (( i=1; i<=${#s}; i++ )); do c=${s[i]};"
                "case $c in [a-zA-Z0-9/_~.-])o+=$c;;*)printf -v o '%s%%%02X' \"$o\" \"'$c\";"
                ";esac;done;printf %s \"$o\";}; \\\n"
                " __mc_first=1;__mc_osc7_precmd(){if (( __mc_first ));then printf "
                "'\\033[2J\\033[H';"
                "__mc_first=0;fi;printf '\\033]7;file://%s\\007' \"$(__mc_pe \"$PWD\")\";};"
                "precmd_functions+=(__mc_osc7_precmd)\r";


            mcterm_enable_osc7 (t, master, osc7_setup, sizeof (osc7_setup) - 1);
        }
    }
dataman ★★★★★
() автор топика

В состав включён встроенный PTY-терминал mcterm с собственным эмулятором терминала

Делал такой в своём клоне (не форке) mc 10 лет назад, по итогу сомневаюсь что это хорошее решение. Основные причины - не одни так другие проблемы со скроллбаком и с горизонтальным ресайзом гуи-окна где всё это запущено. Собственно, у screen те же проблемы, но screen запускается в особых случаях где можно с этим смириться, а mc предполагается запущеным всегда.

Хотя идея конечно заманчивая была.

firkax ★★★★★
()
Ответ на: комментарий от hobbit

А пароль от архива туда уже можно ввести?..

Да. Но вот deb, например, показывает не как оригинальный MC. Взял сборку helium-bin_0.15.1.1-1_amd64.deb, и этот форк мне показывает такое содержание:

control.tar.xz
data.tar.xz
debian-binary

И при входе в любой из этих xz, они тоже временно распаковываются.

dataman ★★★★★
() автор топика

Во встроенный текстовый редактор mcedit добавлены возможность сворачивания блоков кода, браузер истории Undo/Redo, средства управление макросами и поддержка сохранения файлов через sudo.

Ещё, о чём сам автор почему-то не написал:

  • в редакторе тоже появились плагины:
    • Mail, Spell и Ctags.
    • Spell на выбор поддерживает и aspell и hunspell.
    • плагин Ctags добавляет в меню редактора пункт «Navigate» со всякими командами навигации по исходникам.
  • в просмотрщик добавлена команда фильтрации строк (по F6).

Продолжаю наблюдение. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от andytux

…поэтому, никаких конфликтов, никаких зависимостей

Пакетный менеджер выдал целый спмсок, начиная с samba. Поэтому я не стал ставить, в [Y/n] нажал n

dmitry237 ★★★★★
()

Сомневаюсь, нужно ли?...

piyavking ★★★★★
()
Ответ на: комментарий от dmitry237

Пакетный менеджер…

…запускать не стал. Чёрт-те знает откуда, «левый» пакет, какой тут пакетный менеджер. Запустил mc, в нём открыл deb, скопировал файлы, запустил mc6.

$ dpkg -l | grep mc
ii  libxdmcp6:amd64                            1:1.1.3-0ubuntu6                         amd64        X11 Display Manager Control Protocol library
ii  libxvmc1:amd64                             2:1.0.12-2build3                         amd64        X11 Video extension library
ii  pcmciautils                                018-14build1                             amd64        PCMCIA utilities for Linux 2.6

Это всё, что система знает о каких-либо ‘mc’.

andytux ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.