LINUX.ORG.RU

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

 , , , ,


4

2

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)
Ответ на: комментарий от watchcat382

незачем в mc тащить «прямо сейчас»

Кто смотрел картинки ещё в Far2, устали ждать.

а сейчас надо делать более приоритетные вещи

Какие? Можно я только их оставлю и почищу тред от флудофтопа?

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

Какие?

Выше уже писал - применительно к основному коду mc вылавливать и устранять всякие мелкие дефекты в том что уже сделано и работает.

Вот прямо пол-часа назад наткнулся. При запуске бинарника mc создает подкаталог ~/config/mc6, а в нем файл mc.ext При следующем запуске - выругался что файл должен быть mc.ext.ini, а этот типа «outdated». Но ведь он только что сам его создал! Сейчас еще раз попробовал - уже не ругается. И даже если удалить этот подкаталог mc6 со всем содержимым то он снова его создает но уже больше mc.ext.ini не требует. Глюк «плавающий», но он есть. Сейчас отвечаю на форум в паузах между всякими домашними хозработами, потом буду разбираться более тщательно. Понятно что такие мелочи «на скорость не влияют», но хорошо отлаженная программа отличается именно их отсутствием.

Можно я только их оставлю и почищу тред от флудофтопа?

А надо чистить? На сервере ЛОРа заканчивается место? Вроде как тут совсем уж что-то левое не обсуждали и уж тем более не съехали в обсуждение какой-нибудь политики.

watchcat382 ★★
()

Зачем такой комбайн с псевдографическим интерфейсом? Для работы по ssh на удалённом сервере больше подойдёт что-то легковесное (я, например, вообще, в голой консоли работаю, главное, чтобы автодополнение по tab было). А для работы на локальной машине лучше нормальный гуёвый ФМ. В голой консоли, наверное, никто, кроме Столлмана, не сидит (но у него emacs, зачем ему mc).

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

Зачем такой комбайн с псевдографическим интерфейсом?

вы хвастаетесь или жалуетесь, не пойму. как бы никто ведь не приковывает к батарее и не заставляет пользоваться «псевдографическим интерфейсом». сугубо добровольное дело.

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

не заставляет пользоваться «псевдографическим интерфейсом».

Более того, для любителей канонического GUI в линуксе есть Double Commander. Правда когда я последний раз видел его лет семь назад он был сильно недоделанным и глючным, но никто не запрещает поучаствовать в доводке.

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

Вход в архив по Ctrl-PgDn есть?

ну я думал над этим, возможно будет, но в те которые я через libmagic смогу описать как нечто позволяющее просмотреть.

angel_il ★★★★★
()

@angel_il, а можно добавить в настройки панелей что-то типа [ ] Auto refresh panels?
А то приходится жать Ctrl-R после выполнения в mcterm чего-то, что создаёт или удаляет файлы.

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

в те которые я через libmagic смогу описать как нечто позволяющее просмотреть.

Насколько хорошо libmagic опознаёт самораспаковывающиеся архивы и инсталляторы? Сейчас попробовал — Inno Setup не опознаёт.

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

Auto refresh panels?

Тогда как в FAR — с дополнительной опцией «кроме сетевых дисков».

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

Inno Setup не опознаёт.

тут наши полномочия - всё

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

Хм, только что пересобрал из AUR, пробовал и со свёрнутыми панелями, и из комстроки непосредственно под ними – touch/rm корректно отображаются. Но в обычном mc, если команду набрать при развёрнутых панелях, mс их свернёт, выполнит команду и развернёт обратно, а в mc6 приходится «помогать» Ctrl+O.

yars068 ★★★★★
()

В mcterm дочерним процессам стала не видна мышь – не работает прокрутка колесом мыши. Откройте любой длинный man стандартным способом и попробуйте поскролить. В обычном mc оно работает. Проверял в Wayland-сессии, думаю, на иксах будет так же.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от dataman

Появляется вращающийся индикатор, файл создаётся-удаляется-панель реагирует, но потом иногда невозможно что-то сделать в комстроке – иногда «Интерпретатор занят выполнением команды».

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 3)
Ответ на: комментарий от yars068

В mcterm дочерним процессам стала не видна мышь – не работает прокрутка колесом мыши. Откройте любой длинный man стандартным способом и попробуйте поскролить. В обычном mc оно работает. Проверял в Wayland-сессии, думаю, на иксах будет так же.

понял, проверю/фиксану.

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

механизм inotify есть

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

angel_il ★★★★★
()
Последнее исправление: angel_il (всего исправлений: 1)
Ответ на: комментарий от yars068

touch/rm корректно отображаются

А вот так?

  • какой-нибудь простейший проект с Makefile
  • Ctrl-O
  • выполняем make
  • Ctrl-O
  • бинарника на панели не видно, но он есть! :)
dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Ага, а вот так – подтверждается. Но в моём случае список файлов для теста был в неактивной панели. В активной – обновляется.

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

Насколько хорошо libmagic опознаёт самораспаковывающиеся архивы и инсталляторы? Сейчас попробовал — Inno Setup не опознаёт.

в целом есть добавление собственного формата, но когда добавил и стал тестить понял что прямо сейчас из коробки не заработает, но в целом там несколько строк кода надо доработать чтобы заработало.

angel_il ★★★★★
()

а чего они pr в основную ветку не делают? какой прикол с этого зоопарка форков отдельных? эти форки потом загибаются и в репах дистров вряд ли найдешь

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

Сейчас изложу некоторую идею, в которой вижу определенный смысл, но она требует обдумывания. Так вот, в 90х я использовал чью-то самодельную программу, которая была универсальной смотрелкой структурированных бинарных данных. У нее был некий свой язык описания, на основе которого она эти данные интерпретировала и показывала уже не как просто hex, а в осмысленном виде.

да, была такая.. примерно так? https://postimg.cc/V5JgzMqC

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

а так то - зачем? есть стабильная mc в ней более менее всё неплохо работает, форку надо настояться. я помну в свое время появился mc^2 с луа, я сейчас спустя 10 лет вижу что хорошо что не попытались добавить в апстрим, т.к. сама идея того форка была не так хороша (луа нужен но не так как было сделано архитектурно), я в свое время его смотрел на предмет того насколько хорошо там сделана граница ответственности и там слишком вживлялся луа в кишки.

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

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

я выпиливаю в нем subshell

А зачем? Из него же удобно переходить по каталогам, иногда проще набрать cd, чем вносить домашний каталог в список закладок (Ctrl+\). К тому же это избавляет от еще одного окна эмулятора терминала.

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

где то есть где то нет.

Можно подумать спелчекер везде есть. Однако он мало того что впихнут, так еще и по умолчанию включен.

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

примерно так?

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

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

А зачем?

Присоединяюсь к вопросу. Вполне же нормально этот сабшелл работал. Да, лет двадцать назад с ним были глюки но их давно победили.

И еще один вопрос есть - зачем убрали пункт меню Options->Display bits где можно было задать Full 8 bits input? Мало ли вдруг в командной строке русские буквы потребуются в параметрах какой-нибудь команды. Да, это бывает весьма редко, но бывает.

Куда перенесли настройку вывода - нашел, она теперь отдельная для каждой панели, ну может это кому-то надо. Вот только если в меню просто был список кодировок то теперь по умолчанию только семибитная ascii, а остальные надо по всей видимости как-то подсовывать в конфигах, еще не разобрался как. Помещение файлика mc.charset в ~/.config/mc6 не помогло. А так встроенный эмулятор терминала жестко срезает восьмой бит:( За что такая ненависть к восьмому биту по умолчанию сделана - тоже непонятно.

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

есть стабильная mc в ней более менее всё неплохо работает,

Там так усердно впихивали юникод что сломали однобайтные русские кодировки. Последняя не поломанная версия 4.8.13 - ею и пользуюсь.

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

А зачем? Из него же удобно переходить по каталогам, иногда проще набрать cd

это делается в mcterm я ту бажную реализацию выпилил а свою глючную добавил

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

К тому же это избавляет от еще одного окна эмулятора терминала.

потому что есть полноценный контроль над тем как работает этот терминал т.е. это виджет в который отправляется вывод приложений а не просто файр-энт-фогет безконтрольный pty. с станой реализации пока шелл рисует, mc слеп, он не видит вывода, не знает, что на экране. При возврате приходится перерисовывать всё и надеяться, что состояние терминала не сломано + cwd через хаки с PS1/pipe. В новой реализации вывод шелла попадает во внутренний экран виджета, а не на реальный терминал. И поэтому mc всегда знает, что на экране: содержимое строки ввода и тп.

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

$SHELL доступен или нет

доступен, но теперь это управляемый виджет, внешне функционал тот же что и был до.

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

впихивали юникод что сломали однобайтные русские кодировки.

ну немножечко сломали, бывает, там одной строкой фиксится.

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

Куда перенесли настройку вывода - нашел, она теперь отдельная для каждой панели, ну может это кому-то надо. Вот только если в меню просто был список кодировок то теперь по умолчанию только семибитная ascii, а остальные надо по всей видимости как-то подсовывать в конфигах, еще не разобрался как. Помещение файлика mc.charset в ~/.config/mc6 не помогло. А так встроенный эмулятор терминала жестко срезает восьмой бит:( За что такая ненависть к восьмому биту по умолчанию сделана - тоже непонятно.

не очень понял суть проблемы, я проверял в докере на чистом дебиане 10, 8-битные кодировки, как бы работает без проблем, если мы говорим про mc6

angel_il ★★★★★
()

[FEATURE_REQUEST]Апстримный mc умеет раскрашивать права доступа на файл. Но он, по всей видимости, делает это только для прав пользователя, а группу и прочих – не раскрашивает. Можно научить это делать так, как это делает eza?[/FEATURE_REQUEST]

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от angel_il

Т.е. сабшелл вы не собираетесь выпиливать, как написали выше? Не тоже самое, как mc -u

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

что касается моего форка
но один фиг еще тестировать и тестировать

Может быть переименовать проект в mc-ng, как многие проекты делают (zlib-ng, goldendict-ng)?

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

Во многих ЭТ есть действия (1) Clear Scrollback и (2) Clear Scrollback and Reset (так в Konsole). У меня в Wezterm (2) назначено на Alt-Q, например.
И вот после Alt-Q интерфейс mc перерисовывается не полностью — без нижней строки с F-клавишами.

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

Просмотрщик mcview получил […] интерактивную фильтрацию содержимого

А сложно ли будет сделать такую фильтрацию и в mcedit? Я такое видел только в SciTE и в офтопном Notepad3, когда я им ещё пользовался. :)
Вот так выглядит в SciTE: https://github.com/dail8859/NotepadNext/discussions/279.

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

Т.е. сабшелл вы не собираетесь выпиливать, как написали выше?

нет, если смотреть с точки зрения пользователя то он на месте, а с точки зрения разработчика да выпилил заменив неуправляемый pty на управляемый виджет mcterm

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

Не совсем, не инкрементально же.

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

Если в misc/ext.d/markdown.sh добавить:

do_view() {
    if command -v lowdown >/dev/null 2>&1; then
        lowdown -t term  "${MC_EXT_FILENAME}"
    else
        # Phase 1: render markdown to nroff-style text,
        #          tables bracketed by __MC_TABLE_BEGIN__/__MC_TABLE_END__
        # Phase 2: pipe through shell to format tables via separate awk program
...
    fi

то в Term mode станет краcивее. :)

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от dataman

А сложно ли будет сделать такую фильтрацию и в mcedit?

чисто технически не сложно, механизм уже есть, я его сделал когда свертку делал для скоупов. а вот концептуально непонятны некоторые моменты например: фильтр по слову «qwerty» и у нас есть попавшие под фильтр 3 строки

qwerty 1 qwerty 2 qwerty 3

  1. мы стоим на первой строке «qwerty 1» между буквами «q» и «w» нажимаем Enter что должно произойти?

  2. мы стоим на второй строке «qwerty 2» перед буквой «q» нажимаем Enter что должно произойти?

  3. мы стоим на второй строке «qwerty 2» после символа «2» нажимаем Enter что должно произойти?

т.е. я не понимаю как не потеряться после нажатия или ввод внутри подстроки которая является фильтром. Там одно неверное движение и ты потерялся.

angel_il ★★★★★
()
Последнее исправление: angel_il (всего исправлений: 1)
Ответ на: комментарий от angel_il

Спасибо, теперь понял.

Не понравилось поведение, когда скрыты панели (Ctrl+o):

  • строка приглашения вседа внизу, даже после clear
  • показывается строка меню, при нажатии F9 все виснет, спасает только ввод exit, а когда меню настроено на drop-down, то ввод exit и вовсе не отображается, нет визульной отдачи.

Не открываются архивы (ничего не настраивал):

╔══════════════════════════════ Error ═══════════════════════════════╗
║ The magic.ini operation arcmc:open cannot open projectMSDL.tar.bz2 ║
╟────────────────────────────────────────────────────────────────────╢
║                               [ OK ]                               ║
╚════════════════════════════════════════════════════════════════════╝

Понравилось:

  • сворачивание блоков кода в mce6
  • Подхватились настройки mc (скопировал в ~/.mc6)

Пока подожду с использованием, в принципе стоковый mc всем устраивает, хотелось бы конечно некоторых улучшений, но как-нибудь обойдусь и без сворачивания блоков кода.

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

Пока подожду с использованием, в принципе стоковый mc всем устраивает, хотелось бы конечно некоторых улучшений, но как-нибудь обойдусь и без сворачивания блоков кода.

главное архивы а не работа с редактором

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

показывается строка меню, при нажатии F9 все виснет

прикольный баг (мышка работает а клавиши я отдаю терминалу), фиксану, неприятное поведение.

строка приглашения вседа внизу, даже после clear

а какое ожидание? там же теперь есть область вывода от консоли и область комстроки примерно как в браузере

--------------------------

  тут консольный output

--------------------------
промпт %_______________[^]

Не открываются архивы

про открытие архива - гляну

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