*** ВНИМАНИЕ: Блог переехал на другой адрес - demin.ws ***

среда, 11 февраля 2009 г.

Двухпанельные файловые менеджеры

Пока в персонально-компьютером мире имя Питера Нортона, прочно ассоциированное с программой Norton Commander, еще не забыто, особенно на территории бывшего СССР.
Интересно, что настоящим автором Нортон Коммандера является далеко не сам Питер Нортон, а John Socha. Именно он создал изначальную версию, которая называлась VDOS (Virtual DOS), еще будучи студентом. Следуя именно идее “виртуального ДОСа”, первая версия коммандера имела файловые панели только на половину экрана — вторая нижняя часть была "виртуальным окном" в ДОС. Сейчас это окно обычно сокращают до одной командной строки. Затем Джон Сόха присоединился к Peter Norton Computing, и программа начала свое триумфальное шествие по планете под именем Norton Commander. Последней версией коммандера, вышедшей из под рук Джона, была версия 3.0. Именно она является "классической" и именно её знало большинство российских пользователей IBM PC. Но эта версия была лебединой песней коммандера. Питер Нортон продал компанию Symantec'у, а Джон Сόха уволился, прекратив работу над коммандером. После версии 3.0 в Symantec выпустили еще пару версий, но время уходило. Оригинальный интерфейс версии 3.0 был "улучшен", программа заметно потолстела и замедлилась, а на пятки уже наступали Дос Навигатор и Волков Коммандер, а в новом 32-битном мире — первые версии FAR и Total (Windows) Commander.

Вообще, история создания эпохального файлового менеджера весьма интересна.

На мой взгляд, именно представление файловой структуры в виде двух панелей с возможностью адресовать файлы с одной панели на другую, дополненная мгновенным редактором и просмотрщиком, является наиболее удобной для программистской работы, когда необходимо прыгать между десятком файлов одновременно, чего-то временно скопировать/переименовать/удалить, тут что-то быстренько отредактировать, в другом месте поискать и т.д. С трудом могу представить все эти действия через однопанельный файловый а-ля explorer, где только для копирования файла надо сначала мышкой на него указать, взять "на копирование", открыть второй explorer с местом назначения и сделать туда "Paste". Например, замечаю на собой постоянно, если мне надо подправить какие-либо настройки проекта в Visual Studio (например, пути), то мне гораздо быстрее переключиться в FAR, там через F4 открыть файл проекта, найти нужное место и исправить прямого в тексте конфигурации, чем ползать через окошки и менюшки самой IDE. Чего уж говорить об удобстве встроенного редактора, особенно если установлена подсветка синтаксиса. Я много раз пытался заставить себя по F4 вызывать внешний редактор, типа Notepad++, но все равно скатывался до встроенного, ибо он вызывается мгновенно. Notepad++, конечно, отличная программа, но в ней я только делаю “сложную” поиск-замену, когда нужны регулярные выражения.
Мир UNIX'а тоже не обделен хорошими двухпанельными файловыми менеджерами, реально ускоряющими процесс, когда надо сотни раз повторять cd/ls/cp/mv/cd/ls/cp/mv..., разруливая какой-нибудь завал на файловой системе. Midnight Commander знают все. Радостно, что за последние несколько месяцев снова началась активная работа над проектом, знамя которого лежало без движения уже несколько лет. Но есть еще один заслуживающий внимания проект. Неутомимый Сергей Вакуленко создал и развивает Bash Commander. Сейчас это патч к официальной версии Bash, но Сергей бьется за включения его в общее дерево. Этот патч ненавязчиво добавляет в Bash то, что там так не хватает: при нажатии на Ctrl-O (^O) появляются заветные две панели. То есть пока идет неспешная программерская работа в стиле make/vi, то все как обычно в командной строке шелла, но как только надо муторно повозиться с множеством файлов, то нажимаем Ctrl-O, и далее привычные панели с клавишам F1-F10. Интерфейс, конечно, крайне минималистический и не имеет всех наворотов MC, но есть один плюс - крайне простая сборка. Везде, где собирается Bash, там можно собрать и Bash Commander, чего нельзя сказать MC с длинным списков зависимостей, который просто собирается разве что под линуксом, а вот на динозаврах типа AIX'а или HP-UX'а становится грустно. Функциональность Bash Commander’а легко расширяется при помощи самих же скриптов на Bash. Надеюсь, что работу Сергея таки включат в официальную версию Bash.
Мне кажется, что наш постсоветский IBM-PC'шный мир привил некоторым из нас не самую плохую привычку к двухпанельным текстовым файловым менеджерам, не так ли?

15 комментариев:

  1. Несколько лет назад я перешел с Windows Commander + TextPad на FAR + FTE. Теперь иначе не могу. К счастью FTE -- кросс-платформенный консольный редактор, так что могу его пользовать и в Линуксе.
    Жаль, проект совсем зачах.

    ОтветитьУдалить
  2. У меня ситуация обратная. FAR использую с самого начала, но делал множественные попытки пересесть на Windows Commander. Там и работа с архивами удобнее, и табы есть, которых так не хватает в FAR'е и много чего еще. Но! Почему в Windows Commander так неудобно запускать что-то из командной строки?... Элементарная же функция. Нельзя просто что-то набрать в ней, нажать enter и получить неизчезающую консоль. Можно там всякие плугины прикрутить, но это ж настолько базовая вешь. В общем, полной гармонии как-то нет, и максимум ее пока для меня достигается в FAR.

    А в FAR несколько достает отсутствие portable режима. Казалось, пиши все настойки не в реестр, а ini-файл.

    Не совершенства в мире. ;-)

    ОтветитьУдалить
  3. far - это навсегда! пробовал некоторое время жить без него - не получается :)

    Использую его даже как перекодировщик текста ;)
    а то старые приложения (например 1С 7.7) некорректно кладут русский текст в буфер обмена, и некорректно его оттуда получают. Фаром это можно мгновенно исправить :)

    ОтветитьУдалить
  4. happynewbear: Ну так это святое дело, при перетаскивании через буфер обмена также протащить через редактор FARa, поправив попутно кодировку.

    ОтветитьУдалить
  5. Александр, всё это в ФАРе есть, надо только не полениться поискать в плаг-ринге и походить по форуму. Сам ФАРом не пользуюсь, если что, потому как mc.

    Автор, сообщи, пожалуйста, выделенные абзацы --- это копипаста? Если да, то откуда?

    ОтветитьУдалить
  6. zyv: Что именно есть в ФАРе -- portable режим? Было бы здорово, хотя все, что я видел были скрипты, которые после выхода экспортировали реестр в файл и удаляли все из реестра. Как-то все это не очень

    ОтветитьУдалить
  7. Да, именно, и искать его надо на форуме. Что касается табов, то они там не нужны идеологически, потому, что для фоновых операций есть специальный плагин, а окна типа редактора переключаются через CTRL+Tab и их может быть неограниченное количество. Но даже при этом, если память не изменяет, там вроде было понятие панельных экраном, между которыми можно было переключаться. В общем хотя бы иногда читать документацию нужно бы.

    ОтветитьУдалить
  8. Лично мне табы нужны не для редактора, так как про CTRL-TAB я в курсе. Табы нужны для переключения между контекстами двух панелей (не одной, а двух). Именно для этого у меня сейчас и запущено пяток фаров, а мог бы быть только один. Может я чего в документации не дочитал?

    ОтветитьУдалить
  9. Аналогично, у меня обычно не менее 3х окон FAR открыто одновременно для работы.

    ОтветитьУдалить
  10. А когда мне надо открыть еще один ФАР в тех же каталогах, я выхожу из текущего, положение на панелях автоматически сохраняется, и затем два раз запускаю ФАР снова. В этоге - две копии с одинаковыми панелями.

    А еще в ТАБах было бы удобно перемещать/корировать файлы между панелями в любых табах. В TotalCommander'е это возможно.

    ОтветитьУдалить
  11. Alt+F12 для быстрого переключения между каталогами рулит.

    ОтветитьУдалить
  12. Но не между парами каталогов сразу на обоих панелях. ;-)

    ОтветитьУдалить
  13. Так вы это, поиском-то принципиально не пользуетесь или у вас гугл забанен? Существует ровно миллион решений, в т.ч. плагин, который как называется я на память не вспомнил, разные консоли с табами и т.п. Попробовать только сам сейчас не могу, т.к. Windows везде уже давно изжит, а наши консоли принципиально все имеют табы, а для терминала есть screen.

    http://forum.farmanager.com/viewtopic.php?f=6&t=4061&hilit=far+%D1%82%D0%B0%D0%B1%D1%8B

    ОтветитьУдалить
  14. Вот ведь век живи, век читай блоги, особенно свои. ;-)

    Глянул по этой ссылке, там плугин MultiTab. В целом почти то, что нужно. Запускаю, говорит, что ФАР староват (у меня был какой-то из 1.7 билдов). Полез на сайт, ба! А там оказывает уже 2.0 как релиз есть, а не только ночные сборки. Радостно обновился до 2.0, поколдовал с плугинам, с собственными макросами. Теперь радостно сижу на 2.0. Хоть far.exe и потолстел процентов на 30%, пока вроде замедления запуска по сравнению со старой версией не наблюдается. Надеемся его не постигнет участь нортона, которого после версии 3.0 так "заоптимизировали" и нашпиговали "новыми фичами", что пользоваться им стало нереально.

    Спасибо.

    ОтветитьУдалить
  15. На самом деле с FAR 2 произошло несколько знаменательных событий.

    Во-первых, проект получил вторую Open Source жизнь и стал полностью прозрачным после перевыпуска под лицензией revised BSD. В общем-то работает над ним до сих пор по большей части FAR Team, однако все, наверное, помнят замечательный вечный релиз 1.70b5. Теперь ситуация изменилась. Ночные сборки доступны еженощно, а время от времени одна из них получает статус стабильной. Фар живет :)

    Во-вторых, свершилось то, о чем давно говорили большевики --- в ФАР 2, наконец-то, добавлена поддержка Unicode, как в менеджере, так и в просмотрщике/редакторе. Сам я им не пользуюсь по уже указанным выше причинам, однако когда-то узнав об этой новости уж точно бы напился.

    Так что 2.0 --- это куда больше, чем 30% жира.

    ОтветитьУдалить