MyTetra Share
Делитесь знаниями!
Как изменился синтаксис файла расширений в Midnight Commander 4.8.29? Как преобразовать старый формат в новый?
Время создания: 09.10.2025 09:49
Текстовые метки: linux, mc, midnight, commander, синтаксис, изменился, изменен, версия, mc.ext, mc.ext.ini
Раздел: Компьютер - Linux - Bash - Терминал
Запись: xintrea/mytetra_syncro/master/base/1759992555zpp9lcl1n6/text.html на raw.githubusercontent.com

При переходе с Debian Linux 11 на Debian Linux 12, изменилась версия и Midnight Commander на 4.8.29. А вместе с ней изменился и формат файла ~/.config/mc/mc.ext.


Ранее этот файл имел версию формата 3, а теперь версия формата заменилась на 4. С изменением версии еще и поменялось название файла: теперь он должен называться не mc.ext, а mc.ext.ini.





В рабочем каталоге пользователя этот новый файл сам собой не появится. И при попытке открыть на просмотр (F3) или открыть на редактирование (F4) любого текстового файла или файла с какими-нибудь программными исходниками, будет появляться ошибка:



You have an outdated /root/.config/mc/mc.ext file.

Midnight Commander now uses mc.ext.ini file.

Please copy your modifications of the old file to the new one.



При попытке вызвать пункт меню MC "Команда" -> "Редактировать файл расширений" будет появляться другая ошибка, увидеть которую можно только если ширина текстового экрана позволяет:



The format of the /home/user/.config/mc/mc.ext.ini file

has changed with version 4.0.

You may either want to copy it from /etc/mc/mc.ext.ini

or use that file as an example of how to write it.



Так что придется скопировать файл /etc/mc/mc.ext.ini в свой пользовательский каталог ~/.config/mc, и только потом потом его можно будет редактировать.


Формат файла изменился. Вот пример, как раньше выглядела персональная настройка для файлов с расширением *.plb.yml:



# Run ansible playbook

shell/i/.plb.yml

Open=echo "> ansible-playbook %p\n" ; ansible-playbook %p

View=



Что изменилось?



  • Теперь в угловых скобках [...] пишется название формата файла, в данном случае "plb.yml".
  • Определение расширения надо делать в опции Regex, в ней используются регулярные выражения диалекта PCRE.
  • В действиях Open и View поменялся парсер, и теперь, чтобы написать экранированный спецсимвол, например символ перевода строки, надо обратный слеш тоже экранировать - это видно на примере "\\n". Если этого не сделать, то часть команды после "устаревшего" символа "\n" может просто потеряться.
  • Исчезли табы перед настроечными опциями типа Open и View.



Учитывая эти изменения, настроечные строки в новом формате выглядят так:



# Run ansible playbook

[plb.yml]

Regex=.*\.plb\.yml$

Open=echo "> ansible-playbook %p\\n" ; ansible-playbook %p

View=



Видимо, из-за этих тонкостей, авторы MC даже не стали делать автоматической конвертации старого пользовательского файла в новый. Поэтому новый файл mc.ext.ini пользователь должен настроить под себя заново вручную.


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования