LINUX.ORG.RU

Возрождение Midnight Commander

 


0

0

24 ноября вышел релиз форка mc, разработка которого авторами была, судя по всему, прекращена.

Основные изменения релиза:

  • исправлена многолетняя проблема с Ctrl+O и "Интерпретатор занят выполнением команды",
  • улучшена работа с кодировками (так, кодировку редактируемого файла можно переключать и при однобайтной системной локали, и при UTF-8. Можно также указать кодировку имен файлов в панелях и конвертацию при копировании),
  • добавлена подсветка имен файлов по расширению, выделение пробелов и табуляций в mcedit,
  • быстрое переключение режимов отображения (показывать/не показывать скрытые файлы, расположить панели вертикально/горизонтально).
P.S. Будем надеяться, что проект обретет вторую жизнь.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от www_linux_org_ru

>> Ы. Ладно, только на этот раз и только для тебя - C-x t переносит имена выделенных файлов в командную строку. Если ты заботливо поставишь туда команду echo, то сможешь получить этот список там, где сам захочешь.

> Что вы говорите! и как же мне запустить МС с заранее заботливо поставленным туда эхо?

Через pty. Ты лучше подумай, как файлы выделять :D

> Кстати -- насколько портабельно устройство консольной видопамяти -- это только linux-x86? я бы писал виджет на нем, а не на curses.

Бгг.

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

Re^10: Возрождение Midnight Commander

>> Сейчас 2008 год, писать под терминал вообще нецелесообразно.
> Писать под терминал надо. Вот dialog предоставляет параллельный ему Xdialog.

Так твоя "панелька" уже есть: kdialog --getopenfilename . blah

А уж совместимый с ним можно диалог открытия файла сделать хоть в виде панельки.

> 1. mv `expand $o` /path/to/dest не нужно, достаточно mv $o /path/to/dest

Угу, а как собрать этот $o, чтобы там проблем с пробелами в имени не было?

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

Re^6: Возрождение Midnight Commander

>> гы, какая удобная для пользования программа получается :о)

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

Те же kdialog/zenity/... можно заюзать без таких проблем.

В принципе, похоже даже реюзанье пенелек не особо нужно :)

>>> Ты уже начал писать Hardsign Commander или как?

>> Нет. Слишком много неуточнённых вопросов остаётся.

> Жаль, жаль. А ну-ка, сними шапочку :D

Я часть уже озвучил: в какой момент должна освобождаться vfs, например?
Ещё вопрос: как должны восстанавливаться каталоги, открытые в прошлый раз?
И ещё: как отображать в заголовке панельки текущий каталог с учётом того, что vfs сделана посредством fuse?

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

Re^4: Возрождение Midnight Commander

>> Где? Не вижу. Шелловый паттерн, по которому мне предлагают искать -- это не регексп.
> Не пробовал крестик снять в Options -> Configuration -> shell Patterns?


Гы, так вот что значит эта опция! Но всё же как мне поступить, если я хочу видеть только подходящие файлы из текущего каталога?

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

>> Кстати -- насколько портабельно устройство консольной видопамяти -- это только linux-x86? я бы писал виджет на нем, а не на curses.

> Бгг.

Ладно, соглашусь. Там были какие-то эскейп последовательности для перехода в заданную строку от левого верхнего угла... и этого видимо (почти) хватит -- зато будет работать даже без терминала! (там просто выплевываем новый экран)

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

Re^12: Возрождение Midnight Commander

> o="/path/to\ file\ with\ spaces\ and\&\;\|\ some\ shit /path/to/other/file"
и как ты его без eval-а подставишь?

gaa ★★
()
Ответ на: Re^6: Возрождение Midnight Commander от gaa

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

> Те же kdialog/zenity/... можно заюзать без таких проблем.

Без каких "таких"? Нажми кнопку в kdialog, да? Обе эти проги предназначены для однократных действий типа "спросил/выбрал". На их основе можно слабать коммандер, но рулить этим коммандером из скрипта будет ничуть не удобне, чем MC.

> Я часть уже озвучил: в какой момент должна освобождаться vfs, например?

После ухода с панели и конфигурируемого тайм-аута

> Ещё вопрос: как должны восстанавливаться каталоги, открытые в прошлый раз?

Восстанавливай каталоги ОС, без FUSE, которые были открыты.

> И ещё: как отображать в заголовке панельки текущий каталог с учётом того, что vfs сделана посредством fuse?

somefile.tgz:/foo/bar/blah

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

> Нет. У неё в классическом варианте не было операционной системы и
> имён файлов :)


нее имена файлов были , длиной 11 символов. Соотвественно интерфес работами с этими файлами можно было считать аналогом DOS, только D буква будет лишней.

kernel ★★☆
()
Ответ на: Re^6: Возрождение Midnight Commander от gaa

> Я часть уже озвучил: в какой момент должна освобождаться vfs, например? Ещё вопрос: как должны восстанавливаться каталоги, открытые в прошлый раз?

Все вопросы по vfs рассматривались я думаю в гноме и КДЕ, и кроме того, как ты их не решай -- можно будет перерешить.

А вот гуевые панельки были бы полезны -- на случай, если мы запускаем Ъ коммандер в терминале с DISPLAY.

При этом, одни и те же панельки для разных инстансов Ъ коммандера -- это возможно не баг, а фича! (тогда селекцию надо хранить в файлах)

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

Re^8: Возрождение Midnight Commander

>> Те же kdialog/zenity/... можно заюзать без таких проблем.
> Без каких "таких"? Нажми кнопку в kdialog, да? Обе эти проги предназначены для однократных действий типа "спросил/выбрал". На их основе можно слабать коммандер, но рулить этим коммандером из скрипта будет ничуть не удобне, чем MC.

Я обсуждал вопрос "зареюзать мц как однократную выбиралку файлов", уж не знаю, о чём говорил ты :)

>> Я часть уже озвучил: в какой момент должна освобождаться vfs, например?

> После ухода с панели и конфигурируемого тайм-аута

А если я оттуда взялся смотреть фильм?

>> Ещё вопрос: как должны восстанавливаться каталоги, открытые в прошлый раз?

> Восстанавливай каталоги ОС, без FUSE, которые были открыты.

Это, конечно, решение, но какое-то недостаточное.

>> И ещё: как отображать в заголовке панельки текущий каталог с учётом того, что vfs сделана посредством fuse?

> somefile.tgz:/foo/bar/blah


sftp://user@somehost/path/to/file.tar.gz:path/to/subfile.rar:jopa.txt ?

А ничего, кстати, что somefile.tgz:/foo/bar/blah -- корректное имя файла?

gaa ★★
()
Ответ на: Re^8: Возрождение Midnight Commander от gaa

> Я обсуждал вопрос "зареюзать мц как однократную выбиралку файлов", уж не знаю, о чём говорил ты :)

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

>>> Я часть уже озвучил: в какой момент должна освобождаться vfs, например?

>> После ухода с панели и конфигурируемого тайм-аута

> А если я оттуда взялся смотреть фильм?

Не уходи с панели. Да и по-любому FUSE откажется отмонтироваться, если у тебя там открыт файл.

> sftp://user@somehost/path/to/file.tar.gz:path/to/subfile.rar:jopa.txt ?

слишком длинно

> А ничего, кстати, что somefile.tgz:/foo/bar/blah -- корректное имя файла?

Ты ведь не собираешься скармливать его программе. Кстати, это не очень корректное имя файла ;)

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

Re^8: Возрождение Midnight Commander

>> Я часть уже озвучил: в какой момент должна освобождаться vfs, например? Ещё вопрос: как должны восстанавливаться каталоги, открытые в прошлый раз?
> Все вопросы по vfs рассматривались я думаю в гноме и КДЕ, и кроме того, как ты их не решай -- можно будет перерешить.

Как vfs в кедогномах сделана мне не нравится, а без детально рассмотренной задачи мне начинать неохота.

> А вот гуевые панельки были бы полезны -- на случай, если мы запускаем Ъ коммандер в терминале с DISPLAY.

> При этом, одни и те же панельки для разных инстансов Ъ коммандера -- это возможно не баг, а фича! (тогда селекцию надо хранить в файлах)

Ниасилил.

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

Re^14: Возрождение Midnight Commander

>> o="/path/to\ file\ with\ spaces\ and\&\;\|\ some\ shit /path/to/other/file"
>> и как ты его без eval-а подставишь?

> Я че-то не понял тебя совсем.

> o="/path/to\ file\ with\ spaces\ and\&\;\|\ some\ shit /path/to/other/file"

> mv $o /path/to/dest


Ты проверял что написал?

$ o="file\ name otherfile"
$ ls $o
ls: невозможно получить доступ к file\: Нет такого файла или каталога
ls: невозможно получить доступ к name: Нет такого файла или каталога
otherfile

gaa ★★
()

Debian/sid: Нормально собирается. Работает. Что-то исправили, что-то сломали. Вернулся к оригинальному - понял, что "проблема ctrl+o" не такая уж проблема.

Рассуждения о философии: МС удовлетворяет все необходимые потребности человека как файловый манагер и не может устареть как вилка которой едят уже не 1 век. Можно конечно научиться пользоваться и палочками.

Личное: единственный ФМ которым пользуюсь, и к которому всегда возвращался. Выделение в редакторе по F3 вопрос привычки.

Ten
()
Ответ на: комментарий от tailgunner

Re^10: Возрождение Midnight Commander

>> А если я оттуда взялся смотреть фильм?
> Не уходи с панели.

А зачем мне панель, когда я уже нашёл свой фильм? Я её хочу закрыть.

> Да и по-любому FUSE откажется отмонтироваться, если у тебя там открыт файл.

То есть надо ждать, пока фс не освободится, так?

>> sftp://user@somehost/path/to/file.tar.gz:path/to/subfile.rar:jopa.txt ?

> слишком длинно

Ну там и набор вложенных vfs тоже большой.

>> А ничего, кстати, что somefile.tgz:/foo/bar/blah -- корректное имя файла?

> Ты ведь не собираешься скармливать его программе.

Ну а если я хочу поставить закладку на это место, чтоб потом уметь восстанавливать?

> Кстати, это не очень корректное имя файла ;)

$ mkdir somefile.tgz:
$ ls -d some*
somefile.tgz:

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

Re^10: Возрождение Midnight Commander

>> А ничего, кстати, что somefile.tgz:/foo/bar/blah -- корректное имя файла?
> fixed: somefile.tgz/foo/bar/blah

А восстанавливать потом по принципу: если это файл, а не каталог, то попытаться найти соответствующую ему vfs, смонтировать и пойти дальше?

> А та фигня -- источник багов, ибо можно создать фолдер "somefile.tgz:"

и я о том же.

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

Re^6: Возрождение Midnight Commander

>> Но всё же как мне поступить, если я хочу видеть только подходящие файлы из текущего каталога?
> Left|Right -> Filter

Ок, хорошо. Я думал он этого не умеет.

gaa ★★
()
Ответ на: Re^10: Возрождение Midnight Commander от gaa

>>> А ничего, кстати, что somefile.tgz:/foo/bar/blah -- корректное имя файла?

>> Ты ведь не собираешься скармливать его программе.

>Ну а если я хочу поставить закладку на это место, чтоб потом уметь восстанавливать?

Кто сказал, что внутренний формат закладки должен совпадать со строкой, отображаемой для пользователя?

>> Кстати, это не очень корректное имя файла ;)

> $ mkdir somefile.tgz:

Его можно создать, но ':' не является разрешенным символом в портабельном POSIX-имени.

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

Re^16: Возрождение Midnight Commander

>> Ты проверял что написал?
> Нет конечно. Оно работает только вот так (проверил щас):

> echo "ls -l $o" | bash


А вот это и есть eval :)

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

> Повесь их на f10, если нравится. А вот в mcedit как абзац удалить или 40 строк?

Угу... вот это я и слышу от каждого вимщика. Чтобы его юзать, всё надо перевешивать. :-) справедливости ради отмечу, что есть cream, который как раз и есть "перевешанный vim", однако он не лишён своих багов - например хоткеи в русской раскладке не работают (привет мозильщикам!), окошко странно себя ведёт (само ресайзится какбэ).

В смысле, удалить абзац или 40 строк нажатием одной клавиши? Ну да, так не сделаешь. Другой вопрос, что непонятно, а зачем это нужно. Сначала выдели да удаляй, там и вертикальное выделение есть.

> Прелесть vi оценит тот, кто, например, занимается удаленным администрированием зоопарка различных unix-систем.

Угу... причём всех, видимо, родом из 80-90-х, хотя даже в то время, насколько я понимаю, Escape-последовательности, специальные и функциональные клавиши уже существовали. И xterm тоже. Т.е. по-моему здесь единственное преимущество может проявиться, если терминал пропускает только \x20-\x7F, и ничего кроме этого. Где же вы такое сейчас увидите?

Поэтому ИМХО в текстовом редакторе без переключения фокуса ввода с основного поля буквы должны работать как БУКВЫ, а не как переходы между режимами и т.п.

> Для рядового пользователя он конечно не нужен. Как и командная строка.

Ну лично я процентов 80 времени в консольке провожу (а остальное, наверное, в браузере), так что к "рядовому пользователю" отношения не имею, увы :-(

> то есть редактора, который сделан людьми для неосиливших

Эту точку зрения я понимаю, про некоторые другие вещи сам так людям говорю. Но здесь - не принимается, незачёт. ИМХО, вим - ненужное лишнее усложнение простых вещей...

> А может не искал?

А может, и искал. Пробовал как минимум emacs, vim, cream, nano, joe, jedit. Из всех jedit более-менее, но, БЛИН, GUI и java. А остальные вообще. Пилять, да mcedit удобнее их всех! Ему бы ещё вкладочки или дочерние окошки (на манер Turbo C древних) и режим переноса строк (только не как в vimе, когда по стрелке вниз курсор перескакивает через абзац). Ещё расширяемость тоже можно, и интеграцию с X-овым буфером обмена (реализация которого мне, кстати, тоже не нравится, потому что закрываешь приложение и содержимое буфера умирает). Ещё можно сделать опцию, чтобы по нажатию tab при выделенном куске кусок индентировался вперёд на один стоп, а shift+tab - назад на один стоп.

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

Re^12: Возрождение Midnight Commander

>> А восстанавливать потом по принципу: если это файл, а не каталог, то попытаться найти соответствующую ему vfs, смонтировать и пойти дальше?
> S_ISDIR?


Меня больше интересует часть "найти соответствующую vfs"

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

> ненужное лишнее усложнение

UPD: ненужное лишнее, хотя и фичастое, усложнение

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

Re^12: Возрождение Midnight Commander

> Кто сказал, что внутренний формат закладки должен совпадать со строкой, отображаемой для пользователя?
Это удобно пользователю: он может скопировать эту строку себе в закладки.

>>> Кстати, это не очень корректное имя файла ;)

>> $ mkdir somefile.tgz:

> Его можно создать, но ':' не является разрешенным символом в портабельном POSIX-имени.


Кто будет объяснять пресловутой блондинке, почему у неё проблемы с каталогом "::: ПуФфЫсТиК :::" :о)

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

> И многие со мной согласятся, что программер, который пишет проги не для пользователей, а для загадочных красноглазых биороботов - хреновый программер.

И много программ вы написали для меня? Не припомню. Вывод - вы хреновый программер.

andreyu ★★★★★
()
Ответ на: Re^12: Возрождение Midnight Commander от gaa

>> Его можно создать, но ':' не является разрешенным символом в портабельном POSIX-имени.

>Кто будет объяснять пресловутой блондинке, почему у неё проблемы с каталогом "::: ПуФфЫсТиК :::" :о)

А кто будет объяснять ей же о проблемах с '/\/\илашка'?

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

Re^14: Возрождение Midnight Commander

>>> Его можно создать, но ':' не является разрешенным символом в портабельном POSIX-имени.
>>Кто будет объяснять пресловутой блондинке, почему у неё проблемы с каталогом "::: ПуФфЫсТиК :::" :о)

> А кто будет объяснять ей же о проблемах с '/\/\илашка'?


Такой каталог она не сможет создать. А тут будет подземный стук при работе с уже созданным каталогом.

gaa ★★
()
Ответ на: Re^2: Возрождение Midnight Commander от gaa

>> Может, gaa осчастливит нас Hardsign Commander'ом, написанным с использованием современных технологий %) >Пора надевать шапочку из фольги: я именно такое название и предполагал %)

Может напишем "двухпанельник" на Tcl? Легко использовать утилиты из coreutils. Только сначала надо поправить Ck - чё-то не хочет он работать c Tcl >= 8.5 (с 8.4 отлично работает), где-то в Ck_Init выпадает :(

Led ★★★☆☆
()
Ответ на: Re^14: Возрождение Midnight Commander от gaa

>>>Кто будет объяснять пресловутой блондинке, почему у неё проблемы с каталогом "::: ПуФфЫсТиК :::" :о)

>> А кто будет объяснять ей же о проблемах с '/\/\илашка'?

> Такой каталог она не сможет создать.

Ну это и проблема.

> А тут будет подземный стук при работе с уже созданным каталогом.

Эээ, откуда?

tailgunner ★★★★★
()
Ответ на: Re^12: Возрождение Midnight Commander от gaa

>>Меня больше интересует часть "найти соответствующую vfs"

а в чём проблема? программа хранит в себе и управляет картой соответствий "mime/ext -> type", где mime - MIME, ext - расширение файла когда MIME может быть не доступно, м.б. в виде regex, type - fuse программа или что-то подобное. Список доступных fuse программ можно определять при старте или перечитывать постоянно при запуске файла, который может быть смонтирован.

alex_custov ★★★★★
()
Ответ на: Re^16: Возрождение Midnight Commander от gaa

> А вот это и есть eval :)

На автоматизацию "одной клавишей F4" это никак не повлияет. Да и вообще очень длинный список (сделанный find-ом) возможно не поместится в командную строку и его придется скармливать через xargs.

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

Re^4: Возрождение Midnight Commander

> Может напишем "двухпанельник" на Tcl? Легко использовать утилиты из coreutils.
Разве я могу начать писать прикладную программу на чём-нибудь ином? :)

> Только сначала надо поправить Ck - чё-то не хочет он работать c Tcl >= 8.5 (с 8.4 отлично работает), где-то в Ck_Init выпадает :(

Ненене, с курсезами я в 21 веке связываться не хочу.

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

Re^14: Возрождение Midnight Commander

>>>Меня больше интересует часть "найти соответствующую vfs"

> а в чём проблема? программа хранит в себе и управляет картой соответствий "mime/ext -> type", где mime - MIME, ext - расширение файла когда MIME может быть не доступно, м.б. в виде regex, type - fuse программа или что-то подобное. Список доступных fuse программ можно определять при старте или перечитывать постоянно при запуске файла, который может быть смонтирован.


Проблема в том, что придётся писать аналог mailcap для vfs. А это велосипед.

Да и не всё в этот mailcap вставишь: например, как там задать sftp-соединение через fuse?

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

Re^16: Возрождение Midnight Commander

>>>>Кто будет объяснять пресловутой блондинке, почему у неё проблемы с каталогом "::: ПуФфЫсТиК :::" :о)
>>> А кто будет объяснять ей же о проблемах с '/\/\илашка'?

>> Такой каталог она не сможет создать.

> Ну это и проблема.


Это проблема конкретной блондинки, что она не знает оба запрещённых символа в именах юниксовых файлов.

>> А тут будет подземный стук при работе с уже созданным каталогом.

> Эээ, откуда?


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

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

>Меня больше интересует часть "найти соответствующую vfs"

У зипа и рара есть простая сигнатура (и думаю у многих других), у bzip2 -- нет.

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

Re^18: Возрождение Midnight Commander

>> А вот это и есть eval :)

> На автоматизацию "одной клавишей F4" это никак не повлияет.

Это повлияет на то, как будет записано пресловутое cp $o destdir

> Да и вообще очень длинный список (сделанный find-ом) возможно не поместится в командную строку и его придется скармливать через xargs.

man xargs и поймёшь, где ты ошибся.

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

Re^14: Возрождение Midnight Commander

>>Меня больше интересует часть "найти соответствующую vfs"
> У зипа и рара есть простая сигнатура (и думаю у многих других), у bzip2 -- нет.


Я знаю про команду file, но вот незадача: она применима только к файлам :) У меня же могут быть в виде источников фс не только файлы.

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

Re^18: Возрождение Midnight Commander

>> А тут будет проблема фм, что он будет некорректно работать с корректными, пусть и непортабельными именами файлов.
> Работай корректно, что мешает?


Мешает предложенный тобой file.tgz:/path.to.subfile

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

> А кто будет объяснять ей же о проблемах с '/\/\илашка'?

Щас пошел в конк и переименовал каталог в /\/\илашка. Результат проверил из шелла. Все правильно.

www_linux_org_ru ★★★★★
()
Ответ на: Re^18: Возрождение Midnight Commander от gaa

>> Работай корректно, что мешает?

> Мешает предложенный тобой file.tgz:/path.to.subfile

Это предложено для отображения пользователю. Внутренние форматы - дело твое, они могут быть сколь угодно структурированными. И уж точно они не обязаны быть текстовыми строками (не, я понимаю - Тикль, все дела, но глупо сводить всё к строкам).

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

И когда попадает в адресную строку, то тоже %2f\%2f\илашка

Так что это... кхм... особая фича конка.

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