LINUX.ORG.RU

Снова про mc.ext

 ,


1

2

Добрый день, ЛОР.

После переезда на Manjaro обнаружил, что в Midnight Commander 4.8.25 перестал работать файл расширений ~/.config/mc/mc.ext. К примеру, нажатие Enter-ом по zip-архиву никуда не переходит, в то время как ручной переход в xxx.zip/uzip:// работает замечательно. Аналогичная картина с другими расширениями. У владельца хомяка есть права на запись и чтение ~/.config/mc/mc.ext.

Я помню, что-то аналогичное было лет 8 назад, когда это всё переезжало из ~ в ~/.config. Опять переехало? Но ведь команда «Команда -> Редактировать файл расширений» открывает именно этот файл!

★★★★★

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

afair, там формат адресов для vfs менялся. попробуй просто удалить пользовательский mc.ext или скопировать на его место системный

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

Да, заработало.

Отличие в строке, детектирующей файл.
В старом пользовательском: type/^([Zz][Ii][Pp])\ archive
В новом системном: shell/i/.zip
При этом действие в старом и новом висит одно и то же: Open=%cd %p/uzip://

Где-нибудь можно прочитать расшифровку этого нового формата с shell? А то мне всё равно что-то придётся руками править…

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

посмотри во встроенной помощи пункт ‘меню «команды» -> файл расширений’

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

По поводу старый-новый.

У меня MC 4.8.19. Смотрю системный mc.ext.

# zip
shell/i/.zip
	Open=%cd %p/uzip://
	View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip

# zip
type/i/^zip\ archive
	Open=%cd %p/uzip://
	View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip

Вот, рядом и type и shell, ничего нового.

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

Смотрю системный mc.ext.

Да, в системном у меня так же.

Вот, рядом и type и shell, ничего нового.

Вот только type этот не работает. Вот прямо сейчас закомментировал строчки с shell, перегрузил mc — zip сломался. Раскомментировал — zip заработал.

При этом в справке описаны оба.

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

А что там с путями к директориям в /usr? В разных дистрибутивах они разные.

Вот у меня тут пара команд для переезда туда и обратно:

sed -i 's/\/usr\/libexec\//\/usr\/lib\//g' ~/.config/mc/mc.ext
sed -i 's/\/usr\/lib\//\/usr\/libexec\//g' ~/.config/mc/mc.ext

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

Сломался только когда закомментировал оба. С любым одним работает. На всякий случай проверил на семи файлах. Наверно не зря прописаны оба. Я так понимаю, shell срабатывает по расширению, type по mime.

только type этот не работает

То есть, расширение zip, но mime какой-то другой.

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

Вот у меня тут пара команд для переезда туда и обратно:

А если сразу оба прописать? Я вот тоже менял пути в mc.ext

anonymous
()
Ответ на: комментарий от akk

shell/i (desc is, when starting with a dot, any extension (no wildcars), The same as shell but with case insensitive.

Хм. А вот в справке написано только про shell, но не про shell/i, хотя в дефолтном системном mc.exe shell/i активно используется. Догадаться несложно, конечно…

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

А с «-» то что в итоге? Что за команды такие, с него начинающиеся?

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

Я помню, что-то аналогичное было лет 8 назад

Бородатое, пятизвездное ЧМО не АСИЛИЛО mc!

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

Сомневаюсь я что-то

xdg-mime query filetype 4pda.zip возвращает application/zip.
И что в этом случае должно быть аргументом type для корректной работы?

К тому же в начале современного системного mc.ext про type написано:

type  (file matches this if `file %f` matches regular expression desc (the filename: part from `file %f` is removed))
type/i (file matches this if `file %f` matches regular expression desc) The same as type but with case insensitive.

Не похоже, чтобы это про mime. Да и то, что я вижу в том же файле в аргументах type, слабо похоже на названия mime-типов. Я не прав?

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: Сомневаюсь я что-то от hobbit

Пожалуй я не прав, но не пойму в чем. С shell вроде все понятно, грубо говоря, если начинается с точки то реагирует на указанное расширение. Реально так и происходит. А вот на что реагирует type, я не пойму. Что, какой файл ему подсунуть, чтобы он не сработал.

andytux ★★★★★
()
Ответ на: Сомневаюсь я что-то от hobbit

Пошел простым практическим путем.

Один и тот-же zip-архив скопировал. Первая копия с расширением «.zip», вторая с «.zp». В mc.ext закомментировал обе записи для zip-архивов. Не срабатывает ни один, ни на F3, ни на Enter. Раскомментировал shell. Срабатывает только «.zip», на F3 и Enter. Раскомментировал только type. Срабатывают и «.zip» и «.zp», на F3 и Enter. Раскомментировал обе, shell и type. Срабатывают оба файла.

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

А вот на что реагирует type, я не пойму.

Ну написано же:

type (file matches this if `file %f` matches regular expression desc (the filename: part from `file %f` is removed))

type — это выхлоп утилиты file c удалением имени файла.

$ file xxxx.zip 
xxxx.zip: Zip archive data, at least v2.0 to extract

type должен быть

^Zip\ archive
akk ★★★★★
()
Последнее исправление: akk (всего исправлений: 1)
Ответ на: комментарий от akk

xxxx.zip: Zip archive data, at least v2.0 to extract

У меня file так и пишет.

type должен быть ^Zip\ archive

Не работает. shell/i работает, type/i нет. :(

В принципе, что делать — я понял: брать старый файл и всё переводить на shell. По расширениям будет работать. А вот чтобы файл NBF или ODT открывался как ZIP, нужен таки type. Будем искать…

hobbit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.