Как стать автором
Обновить

Комментарии 585

Если запускать графическую версию — да, все, ВООБЩЕ ВСЕ, прямо как в родном. Если консольную — есть небольшие ограничения, сходу могу вспомнить только одно, Ctrl+цифры не работают (и, кажется, даже для этой проблемы есть workaround). Но если консольная запущена внутри графической (ну то есть запустили графический far2l, в нем сделали ssh example.com, а там уже запустили консольный far2l), все ограничения отменяются благодаря чудесным собственным расширениям терминала.

А, да, если Alt+русская_буква не срабатывает, надо собрать с wx3.1 — это в апстриме баг, он исправлен уже, но в дистрибутивах старые wx'ы.
Но если консольная запущена внутри графической (ну то есть запустили графический far2l, в нем сделали ssh example.com, а там уже запустили консольный far2l), все ограничения отменяются благодаря чудесным собственным расширениям терминала.


Вот бы еще оригинальный FAR из под Windows это умел. Если через SSH, то какая разница какова операционная система у внешнего (первого) FAR…
Этот момент в соседней ветке обсуждаем
> А куда донат заносить?

Автор пока по непонятной причине от этой темы уклоняется, можно выразить желание поддержать его донейтом вот здесь github.com/elfmz/far2l/issues/215

Он справедливо уклоняется, тема скользкая, так как неизбежно найдутся желающие громко упрекать в коммерции и вымогательствах. лично я закину и буду закидывать, но никого ни к чему не призываю
А куда закидывать-то? Он реквизиты не постит же.

Ну и вообще это странная история — отказываться от донейтов, потому что хейтеры что-то плохое скажут. Они в любом случае плохое скажут, они хейтеры, нельзя строить свою политику на попытке угодить им.
я вроде видел только что страницу где предлагается донатить,
на ГитХабе же есть стандартные переводы денех, не? — вроде то что я и видел, вникнуть не было возможности,… собственно вот, вытащил из истории посещений:
liberapay.com/on/github/elfmz
это что?

«странная история — отказываться от донейтов, потому что хейтеры что-то плохое скажут»
у меня нет точного ответа, но проблема что хейтерам может кто-то поверить, лично я, если бы был в схожей ситуации, думаю что не стал бы инициировать переводы в свою пользу, но может и стал бы, хотя бы чисто из любопытства. а так — несущественная эта тема, и исход конечно несущественнен, — что на донатах еще никто не разбогател это 100%.
Я сам сильно думаю, как сделать так чтобы качественный опенсорс окупался создателям, и ничего дельного не придумал.
А вот! )) у меня была идея вставлять рекламу бегущей текстовой строкой в ФАР )) думаю что стоит попробовать этот метод, нo что из него могло бы выйти — не знаю
> liberapay.com/on/github/elfmz

Я эту штуку первый раз вижу, и выглядит она немного странно. Собирать людям, их не спрашивая? Ну такое. А это точно не скам вообще?

> на донатах еще не кто не разбогател это 100%

Во-первых, разбогатели (но это в основном это всякие хайповые однодневные истории, которые скорее плохой пример). Во-вторых, вести оперативную деятельность на донейты вполне реально, вон, на Горпроекты Каца и Варламова посмотрите :)) Тут недавно пост выходил про лучшую онлайн карту ДТП страны, это при их поддержке проект, между прочим.

А на хейтеров никогда ориентироваться нельзя, им угодить невозможно, зато можно потратить зря кучу времени и сил, демотивироваться, забросить дело. Представьте, что я этот пост писал бы не для тех, кто far2l пользуется, а пытаясь угодить тем, кто его ненавидит? Ну вот этим вот «ненужно, есть mc» и «учите консоль лучше, дурачки». Нет, я на таких даже внимание не обращаю, а когда приходят — отшучиваюсь.

Обращать внимание, наоборот, надо на добросовестных сторонников, которые тестят, код шлют, или вот денег задонейтить готовы. Все три варианта помощи по-своему хороши, глупо отрицать один из них только потому что кто-то нос воротить будет: желающие нос воротить и так всегда найдутся, обращать внимания на таких и вовсе не надо.
Ну вот этим вот «ненужно, есть mc»

Почему ненужно, нужно — будет больше альтернатив емаксу.


Представьте, что я этот пост писал бы не для тех, кто far2l пользуется, а пытаясь угодить тем, кто его ненавидит?

Надо будет затестить far2l дома. В виндовсе мне всегда нравился ТоталКомандер, но его не везде можно использовать и иногда приходилось довольствоваться ФАРом.

Надо будет затестить far2l дома. В виндовсе мне всегда нравился ТоталКомандер, но его не везде можно использовать и иногда приходилось довольствоваться ФАРом.


Чей-то непонятно.

Если вы только собираетесь попробовать far2l, то под Linux вы ФАР еще не гоняли.

Ну а если под Винду то везде, где можно ФАР, то там и Тотал можно тоже.

Ну а если под Винду то везде, где можно ФАР, то там и Тотал можно тоже.

Имелось в виду спорность использования условно-бесплатного Тотала в коммерческих целях.

Имелось в виду спорность использования условно-бесплатного Тотала в коммерческих целях.


А вы FAR лицензировали с указанием «xUSSR регистрация»?
А вы FAR лицензировали с указанием «xUSSR регистрация»?

Понятия не имею, просто ФАР есть в списке разрешённых программ, а Тотал надо каждый месяц обосновывать безопасникам.

Так сейчас вроде BSD.
far2l под GPL: там кусочки кода Wine есть, а Wine-то под GPL.
Причины вполне понятные. Во-первых крайне маловероятно что донаты составят конкуренцию зарплате, во-вторых мне больше нравится писать код как мне нравится, сорри за каламбур.
Так что чтоб не было обидок с одной стороны (я задонатил 100500 шекелей а они так и не сподобились переписать все нафиг сделать маленькую нужную мне фичу, и психологического давления с другой — донаты я не принимаю. И надеюсь это не потребуется:)
Потому что есть работа, есть семья с малым ребенком, стройка дома и хобби. Надо разделять:)
Ой, ну это совсем поверхностное понимание донатов. Есть разные модели, и фичи-за-бабло — далеко не единственная. Меня вот вполне устраивает модель «есть elfmz, и он пилит far2l так, как ему кажется правильным», даже если мои PR не всегда принимаются (я понимаю пределы собственной компетенции), и я готов поддержать эту модель пятихаточкой, не требуя ничего взамен. Ну, как открытку Торвальдсу послать. Просто для мотивации и выражения благодарности.

А то, что донейт не подразумевает какой-то ответственности в виде реализации конкретных фич, это можно в вежливой и ироничной форме прописать на страничке с донейтами. Кого-то отпугнёт (и чёрт с ними), других — нет.

(я, если что, работаю в частном фонде, живущем на донейты, и тему эту знаю, можно сказать, профессионально)

Не знаю, потянет ли на issue, поэтому спрошу здесь:
Как мне правильно сделать "патч", чтоб только что собранный из исходников far2l был сразу с моими цветами (серенький, как Dos Navigator, "если вы понимаете о чём я")?
Ну и ещё пара мелких правок, типа кодировки создаваемых файлов всегда UTF-8.

Т.е. я делаю форк, постоянно его rebase-ю, и собираю.
Но я в C++ коде не силён, как узнать - где хранятся цвета по умолчанию?

Не смог найти инструкции по запуску far2l под консолью ubuntu server v20.04.

В ссылке выше страница с описанием бага 276 с массой текста.
github.com/elfmz/far2l/issues/276

Понимаю, что far2l в стадии alpha, но чтоб пользователи дали feedback, нужны простые инструкции по запуску.
Ссылка на 10 страниц переписки от 2017 как-то демотивирует.
Программировать всегда интереснее, чем писать инструкции! Этот пост как раз и написан для тех, кому не хочется читать 10 страниц переписки от 2017 года, зато ок задать вопросы в каментах :)

Сам запуск делается так:
far2l --tty

Если же вы о том, как собрать far2l без wx, то это делается так: вместо
cmake -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release ..
пишете
cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..

Впрочем, это вовсе не обязательно: версия, собранная с wx, прекрасно запустится в консоли. Просто потащит кучу ненужного на сервере мусора в зависимости.

PS: Ещё обращаю внимание на флажок --ee, который решает проблему необходимости двойного нажатия ESC в консоли (тем же способом, что и mc). И, кстати, --help работает тоже.
Ну вот я собрал по инструкции, и far у меня в хомяке лежит. Как его теперь установить? Там же какие-то симлинки прописываются, файлы по разным каталогам раскладываются.

Зачем? Это ж не винда. Можно просто bash alias для бинарника сделать.


А можно скопировать результат установки в /opt, сделать симлинк на бинарник и положить в одну из директорий из PATH, какую именно — зависит от дистрибутива.

Действительно, в установочном скрипте имеются строчки:


  ln -sf ../../bin/far2l "$pkgdir"/usr/lib/far2l/far2l_askpass
  ln -sf ../../bin/far2l "$pkgdir"/usr/lib/far2l/far2l_sudoapp

Но больше никаких особенностей нет.

Что это за скрипт, не подскажете? Как его запустить?
установка по make install, но я бы лучше cpack запустил и получил готовую .deb'ку, и её уже ставил через dpkg. ну это если у вас debian-based, конечно

благодарю за этот коментарий, в сборке и упаковке тулз (в деталях) не соображаю ничего вообще никак, но люблю все пакетами ставить. Все собралось в пакет и установилось

НЛО прилетело и опубликовало эту надпись здесь
Нет, ну чего только люди не придумают, лишь бы я так и не полюбил MC!
Лет несколько назад снова прямо очень захотелось Far для Linux, и — о чудо — читаю в новостях, свершилось. Однако новость оказалась датирована первым апреля.
Но есть всё-таки справедливость, правое дело торжествует героическими стараниями великолепных elfmz и unxed, многих лет и процветания им и иже с ними.

если целый день смотреть в синий цвет, становится как-то не по себе
(и прямо чувствуешь, как отрастает борода и свитер с оленями)
Это с непривычки, зато потом теплее.
А от нескушных обоев и до альтернативных шорткатов недалече.
Да и плагин для написания плагинов (на Python!) ускользнёт же в исконный Far. Ну и пусть его.
Зато теперь и в консоли, и в putty, (и в wsl), и всё синхронизируется.
Впору задуматься о вытеснении всех прочих способов сетевого взаимодействия Far'ом и о водворении Far в Dom0.

Интересно, в dd-wrt Far уже впилили?

Спасибо, плюсики завтра с меня, а нескушные новости с Вас.
> Интересно, в dd-wrt Far уже впилили?

Разговоры такие разговариваются. Попытка переписать конвертацию кодировок с кода Wine на iconv была как раз обусловлена желанием сократить размер бинарника для всяких роутеров. Впрочем, iconv тупит, а бинарники уменьшить другим[и] способом[ами] получилось.

Но про готовую сборку под *wrt я пока не слышал. Может, вы будете первым, кто это сделает? ;-)

> Зато теперь и в консоли, и в putty, (и в wsl), и всё синхронизируется.

У меня сейчас есть ещё один pet project — попытка добавить far2l extensions в консольный текстовый редактор на Scintilla Turbo. Чтоб там тоже буфер обмена заработал. Сама идея этого Turbo настолько красивая (притащить Scintilla, на котором[-ой?] notepad++ написан, в консоль, да ещё с интерфейсом на Turbo Vision, офигеть, и это работает!) настолько красива, что я просто не смог удержаться :)) Ну и заодно демка получится, как добавлять буфер обмена в фаровском исполнении в консольные аппы.
сократить размер бинарника для всяких роутеров
Там наверно можно без Colorer'а обойтись (хотя нет), а это заметный кусок.

про готовую сборку под *wrt я пока не слышал
Тут свеженьких энтузиастов парочку надо, но вопрос теперь действительно — кто первый.

Ещё, кстати, есть подходящая платформа — в медиаплеерах на реалтековских чипах — moServices, годная прослойка между реалтековскими блобами, позволяющая актуализировать незаслуженно заброшенное производителем железо, так там мэйнтейнера прямо вот FarVoice зовут, что намекает.
И питон там ко двору пришёлся бы. MC ЕМНИП там уже есть, а вот приверженцев Far'а пока нечем было заманить.

в консоль, да ещё с интерфейсом на Turbo Vision, офигеть, и это работает!
Turbo Vision это который «Error 200»? Да, Вы определённо знаете толк! Пилите, пока энтузиазм не утёк.
Это что же получается, скоро буфером Far'а можно будет пользоваться для передачи по галактике векторной графики из Corel'а под Windows в Inkscape на Linux и для прочего 3D/VR? Ооо!..
Far, кстати, обладает удобным способом работы с ресурсами ftp из командной строки (в стандартном FTP, не NetBox, кажется его можно было включить на версии 3).

Всяческих успехов проекту и прокачки скилов персоналиям.
> Error 200

200 это из Турбо Паскаля, а заопенсорсили Borland сишную Turbo Vision, о ней и речь тут (ну, о форке, в который добавили юникод и кроссплатформенность). Но да, вектор вы поняли правильно, это те самые милые сердцу ностальгические досовские TUI.

farftp в far2l тоже собрать можно, просто по умолчанию не включён :)

https://github.com/magiblot/turbo/pull/37

Копирование из turbo в far2l, из которого turbo запущен (будет работать в свежих версиях far2l).

https://github.com/elfmz/far2l/issues/1438

Как собрать для *wrt (всё ещё есть некоторые проблемки, но базовые функции файлового менеджера и редактора уже работают).

сократить размер бинарника для всяких роутеров

Что-то мне кажется, что проще ставить полноценный far[2l] на клиент, а на роутер заходить как на сетевой диск.

Так уже вовсю можно, да! При этом вы разок попробуйте удаленный far2l внутри графического, вот чтоб клипборд был и все хоткеи. Ощущения весьма захватывающие, на это подсаживаешься))
Спасибо Вам за труд!
Я сам пользователь и far2l, и turbo (помогаю автору тестировать собирание сборок).
Удалось уже их скрестить?
Вообще если нужна какая-то посильная помощь — буду рад присоединиться!
О, класс! Скрестить — ну, я гоняю turbo под far2l для работы с текстами (для работы с исходниками встроенный редактор пока больше подходит). Думаю прикрутить к turbo far2l VT extensions, чтоб буфер обмена через ssh работал.

Добавляйтесь в чатик :)

На базовом уровне удалось :) Вот эта штука даст запись в буфер фара из turbo. А вставка и так работает через bracketed paste.
https://github.com/magiblot/turbo/pull/37

Надо теперь чтоб в мастер автор вмержил.

А чем это лучше МС?
Отличный вопрос! К сожалению, чтобы грамотно на него ответить, нужно в совершенстве знать все функции и mc и far'а. А я ни одного человека, способного на это, не встречал пока: либо человек хорошо знает mc, либо far.

Поэтому лучше смотреть не с ракурса «лучше-хуже», а с ракурса «а вот альтернатива какая есть, глядите!». Как GNOME/KDE, кока и пепси.

Из «фишек», которых в mc не хватает лично мне, могу навскидку назвать, например, такие вот две: буфер обмена через ssh и корректная работа с русскими буквами в OEM .zip архивах.

По последнему пункту тикет в mc я запульнул, разумеется. Они отвечают, что все проблемы в апстриме, unzip/p7zip. Но unzip/p7zip в дистрибутивах не починят примерно никогда, судя по всему. Мэйнтейнер p7zip из Дебиана пока не ответил на мой email, по крайней мере.
На счёт альтернативы согласен, нужна. Фар когда-то был крут. Но вот про перечисленные «фишки» не очень понял. Можете пояснить? Что это за «буфер обмена по ssh»? Проблем с русскими буквами в МС не замечал, возможно в каких-то версиях есть. Да, в МСВС-3 точно есть в виндовских файлах, но не всех, но тамошнему МС лет 15. :)
Про зипы в тикете, который в mc отправлен, всё написано, с примерами. Это действительно апстримовые баги, при этом пользователю от этого не легче.

Про буфер обмена очень интересно, с удовольствием расскажу. Как это работает в mc? Он стучится в локальные иксы и спрашивает «а дайте мне буфер, пожалуйста!». Естественно, на сервере, куда вы по ssh зашли, и где никаких локальных иксов нет, такое из коробки работать не будет.

В far2l механика другая. 1) Запускаем графический far2l (мы же на десктопе иксовом работаем, раз нам клипбоард понадобился, верно?) 2) В нём делаем «ssh example.com» 3) На example.com запускаем местный far2l 4) Удаленный текстовой far2l и локальный графический far2l договариваются между собой о доступе к буферу обмена и клавиатуре с помощью хитрых специальных escape-последовательностей 5) в итоге вы пользуетесь удаленным far2l так же, как будто бы он работал на вашей родной системе в графическом режиме — с клипбордом и расширенной поддержкой сочетаний клавиш.

Разумеется, если запустить удаленный far2l под любой другой терминалкой (кроме встроенной в графический far2l), он тоже будет работать. Но без клипборда, и часть хоткеев (Ctrl+цифры и может ещё что-то, сходу не соображу) отвалятся.
Ясно, спасибо. Плюсануть не могу, сори.
не думали на счет просмотрщика картинок в консоли, ковырясь сейчас с этим, хотелось бы чтобы по F3 на картинке оно показывало в терминалах vt340, как это сделана в утилите lsix через SIXEL-ы en.wikipedia.org/wiki/Sixel
Вы будете очень смеяться, когда я покажу workaround, которым пользуюсь, чтобы быстро понять, что на картинке, когда сижу в far2l на другом конце глобуса:

chafa -c 16 --color-space=din99d --dither=ordered -w 9 --symbols all --fill all !.! && read -n1 -r -p ""

Если эту строчку прописать в «кастомные ассоциации», фар заменит !.! на имя файла. Ну и чафу надо саму поставить, конечно.

А вообще, конечно, такая штука обсуждалась. Там есть два принципиально возможных подхода к такому: 1) через sixel-графику, вот тикет 2) через развитие идеи far2l terminal extensions, чтобы удаленный фар мог так слать графическую картинку локальному.

Думаю, вряд ли elfmz станет заниматься этим до стадии беты, но в перспективе отчего ж не сделать, конечно :) Или же сами можете попробовать — если уж я со своим «знанием» сей смог патчи писать для far2l, то и вы сможете!
я для mc пилю по мере возможности.
Ого, в mc будет смотрелка картинок? Здорово!
кто знает, скорее нет чем да.
вероятность есть.
Как это работает в mc? Он стучится в локальные иксы и спрашивает «а дайте мне буфер, пожалуйста!». Естественно, на сервере, куда вы по ssh зашли, и где никаких локальных иксов нет, такое из коробки работать не будет.

ничего не понял, а зачем ему вообще буфер обмена? нажал shift, повёл мышкой — выделилось, нажал shift + средняя кнопка, вставилось.

Попробуйте так выделить-вставить строчку длиннее ширины окна терминала. Или кусок текста длиннее высоты окна терминала.
не, это не то, там у вас длинные строки криво скопирутся и т.д. я в свое время поддержку общего клипборда запиивал через xclip.
вот мой файл настроек mc.keymap

Заголовок спойлера
[main]
ChangePanel = tab; ctrl-i
Help = f1
UserMenu = f2
View = f3
# ViewFile =
Edit = f4
# EditForceInternal =
Copy = f5
Move = f6
MakeDir = f7
Delete = f8; shift-delete
Menu = f9
Quit = f10
MenuLastSelected = f19
QuitQuiet = f20
Find = alt-question; alt-f7; ctrl-backtab
CdQuick = alt-c
HotList = ctrl-backslash
Reread = ctrl-r
DirSize = ctrl-space
Suspend = ctrl-alt-z
Swap = ctrl-u
History = alt-h
# PanelListing =
# SetupListingFormat =
ShowHidden = alt-dot
SplitVertHoriz = alt-comma
SplitEqual = alt-equal
SplitMore = ctrl-shift-right
SplitLess = ctrl-shift-left
Shell = ctrl-o
PutCurrentPath = alt-a
PutOtherPath = alt-shift-a
PutCurrentSelected = alt-enter; ctrl-enter
PutCurrentFullSelected = ctrl-shift-enter
ViewFiltered = alt-exclamation
Select = kpplus; ctrl-kpplus
Unselect = kpminus
SelectExt = ctrl-kpasterisk
SelectInvert = kpasterisk
ScreenList = alt-prime; alt-f11
# OptionsLayout =
# OptionsAppearance =
# OptionsPanel =
# OptionsConfirm =
# OptionsDisplayBits =
# OptionsVfs =
# LearnKeys =
# SaveSetup =
# EditExtensionsFile =
# EditFileHighlightFile =
# Filter =
# ConnectFish =
# ConnectFtp =
# ConnectSmb =
# Undelete =
EditorViewerHistory = alt-f12
ExtendedKeyMap = ctrl-alt-x

[main:xmap]
ChangeMode = c
ChangeOwn = o
ChangeAttributes = e
CompareDirs = d
CompareFiles = ctrl-d
HotListAdd = h
LinkSymbolicEdit = ctrl-s
Link = l
LinkSymbolic = s
LinkSymbolicRelative = v
PanelInfo = i
PanelQuickView = q
ExternalPanelize = exclamation
VfsList = a
Jobs = j
PutCurrentPath = p
PutOtherPath = ctrl-p
PutCurrentTagged = t
PutOtherTagged = ctrl-t
PutCurrentLink = r
PutOtherLink = ctrl-r

[panel]
CycleListingFormat = alt-t
Search = ctrl-s; alt-s
Mark = insert; ctrl-t
MarkUp = shift-up
MarkDown = shift-down
MarkLeft = shift-left
MarkRight = shift-right
Down = down
Up = up
Left = left
Right = right
PageUp = pgup
PageDown = pgdn
Enter = enter
PanelOtherCd = alt-o
PanelOtherCdLink = alt-l
ViewRaw = f13
EditNew = f14
CopySingle = f15
MoveSingle = f16
DeleteSingle = f18
SelectExt = ctrl-kpasterisk
Select = alt-plus
Unselect = alt-minus
SelectInvert = alt-asterisk
CdChild = ctrl-pgdn
CdParent = ctrl-pgup
# CdParentSmart =
# Panelize =
History = alt-shift-h
HistoryNext = alt-u
HistoryPrev = alt-y
BottomOnScreen = alt-j
MiddleOnScreen = alt-r
TopOnScreen = alt-g
PanelOtherSync = alt-i
SelectCodepage = alt-e
Top = alt-lt; home; a1
Bottom = alt-gt; end; c1
# Sort =
# SortPrev =
# SortNext =
# SortReverse =
SortByName = ctrl-f3
# SortByExt =
# SortBySize =
SortByMTime = ctrl-f5
# ScrollLeft =
# ScrollRight =

[dialog]
Ok = enter
Cancel = f10; esc; ctrl-g
Up = left; up
#Left = left; up
Down = right; down
#Right = right; down
Help = f1
Suspend = ctrl-alt-z
Refresh = ctrl-l
ScreenList = alt-prime; alt-f11
ScreenNext = alt-rbrace
ScreenPrev = alt-lbrace

[menu]
Help = f1
Left = left; ctrl-b
Right = right; ctrl-f
Up = up; ctrl-p
Down = down; ctrl-n
Home = home; alt-lt; ctr-a
End = end; alt-gt ctrl-e
Enter = enter
Quit = F10; esc; ctrl-g

[input]
Home = alt-lt; home; a1
End = alt-gt; end; c1
Left = left; alt-left; ctrl-b
Right = right; alt-right; ctrl-f
WordLeft = ctrl-left; alt-b
WordRight = ctrl-right; alt-f
Backspace = backspace; ctrl-h
Delete = delete; ctrl-d
DeleteToWordBegin = alt-backspace
DeleteToWordEnd = alt-d
# Mark =
Remove = esc; ctrl-w
Cut = ctrl-x
Store = ctrl-c
Paste = ctrl-v
Yank = ctrl-y
DeleteToEnd = esc; ctrl-k
HistoryPrev = ctrl-e; alt-p; ctrl-down
HistoryNext = ctrl-p; alt-n; ctrl-up
History = alt-h
Complete = shift-tab
Clear = ctrl-backspace; ctrl-a
MarkLeft = shift-left
MarkRight = shift-right
MarkToWordBegin = ctrl-shift-left
MarkToWordEnd = ctrl-shift-right
MarkToHome = shift-home
MarkToEnd = shift-end

[listbox]
Up = up; ctrl-p
Down = down; ctrl-n
Top = home; alt-lt; a1
Bottom = end; alt-gt; c1
PageUp = pgup; alt-v
PageDown = pgdn
Delete = delete; d
Clear = shift-delete; shift-d
View = f3
Edit = f4
Enter = enter

[radio]
Up = up; ctrl-p
Down = down; ctrl-n
Top = home; alt-lt; a1
Bottom = end; alt-gt; c1
Select = space

[tree]
Help = f1
Reread = f2; ctrl-r
Forget = f3
ToggleNavigation = f4
Copy = f5
Move = f6
Up = up; ctrl-p
Down = down; ctrl-n
Left = left
Right = right
Top = home; alt-lt; a1
Bottom = end; alt-gt; c1
PageUp = pgup
PageDown = pgdn
Enter = enter
Search = ctrl-s; alt-s
Delete = f8; delete

[help]
Help = f1
Index = f2; c
Back = f3; left; l
Quit = f10; esc
Up = up; ctrl-p
Down = down; ctrl-n
PageDown = f; space; pgdn
PageUp = b; pgup; alt-v; backspace
HalfPageDown = d
HalfPageUp = u
Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
Enter = right; enter
LinkNext = tab
LinkPrev = alt-tab
NodeNext = n
NodePrev = p

[chattr]
Up = up; left; ctrl-p
Down = down; right; ctrl-n
Top = home; alt-lt; a1
Bottom = end; alt-gt; c1
PageUp = pgup
PageDown = pgdn
Mark = t; shift-t
MarkAndDown = insert

[editor]
Store = ctrl-insert; ctrl-c
Paste = shift-insert; ctrl-v
Cut = shift-delete; ctrl-x
Up = up
Down = down
Left = left
Right = right
WordLeft = ctrl-left
WordRight = ctrl-right
Enter = enter
Return = shift-enter; ctrl-enter; ctrl-shift-enter
BackSpace = backspace
Delete = delete; ctrl-d
PageUp = pgup
PageDown = pgdn
Home = home
End = end
Tab = tab
Undo = ctrl-u; ctrl-z
Redo = alt-r; ctrl-alt-z
Top = ctrl-home; alt-lt
Bottom = ctrl-end; alt-gt
ScrollUp = ctrl-up
ScrollDown = ctrl-down
TopOnScreen = ctrl-pgup
BottomOnScreen = ctrl-pgdn
DeleteToWordBegin = alt-backspace
DeleteToWordEnd = alt-d
DeleteLine = ctrl-y
DeleteToEnd = ctrl-k
# DeleteToHome =
# ParagraphUp =
# ParagraphDown =
Save = f2
# EditFile =
EditNew = ctrl-n
SaveAs = f12; ctrl-f2
# Close =
History = alt-f12
Mark = f3
Copy = f5
Move = f6
Remove = f8; shift-delete
# MarkLine =
# MarkWord =
MarkAll = ctrl-a
# Unmark =
Search = f7
SearchContinue = f17
BlockShiftLeft = shift-tab
#BlockShiftRight =
MarkPageUp = shift-pgup
MarkPageDown = shift-pgdn
MarkLeft = shift-left
MarkRight = shift-right
MarkToWordBegin = ctrl-shift-left
MarkToWordEnd = ctrl-shift-right
MarkUp = shift-up
MarkDown = shift-down
MarkToHome = shift-home
MarkToEnd = shift-end
MarkToFileBegin = ctrl-shift-home
MarkToFileEnd = ctrl-shift-end
MarkToPageBegin  = ctrl-shift-pgup
MarkToPageEnd = ctrl-shift-pgdn
MarkScrollUp = ctrl-shift-up
MarkScrollDown = ctrl-shift-down
# MarkParagraphUp =
# MarkParagraphDown =
MarkColumnPageUp = alt-pgup
MarkColumnPageDown = alt-pgdn
MarkColumnLeft = alt-left
MarkColumnRight = alt-right
MarkColumnUp = alt-up
MarkColumnDown = alt-down
# MarkColumnScrollUp =
# MarkColumnScrollDown =
# MarkColumnParagraphUp =
# MarkColumnParagraphDown =
BlockSave = f16
MarkColumn = f13
Replace = f4
ReplaceContinue = f14
Complete = ctrl-shift-tab
InsertFile = f15
Quit = f10; esc
InsertOverwrite = insert
Help = f1
#Date =
Refresh = ctrl-l
Goto = alt-l
Sort = alt-t
Mail = alt-m
ParagraphFormat = alt-p
MatchBracket = alt-b
ExternalCommand = alt-u
UserMenu = f11
Menu = f9
Bookmark = alt-k
BookmarkFlush = alt-o
BookmarkNext = alt-j
BookmarkPrev = alt-i
Shell = ctrl-o
InsertLiteral = ctrl-q
# MacroStartRecord =
# MacroStopRecord =
MacroStartStopRecord = ctrl-r
# MacroDelete =
ShowNumbers = alt-n
ShowTabTws = alt-underline
SyntaxOnOff = ctrl-s
# SyntaxChoose =
# ShowMargin =
Find = alt-enter
FilePrev = alt-minus
FileNext = alt-plus
# RepeatStartStopRecord =
SelectCodepage = alt-e
# Options =
# OptionsSaveMode =
# SpellCheck =
SpellCheckCurrentWord = ctrl-p
# SpellCheckSelectLang =
# LearnKeys =
# WindowMove =
# WindowResize =
# WindowFullscreen =
WindowList = alt-f11
WindowNext = ctrl-tab
#WindowPrev =
# ExtendedKeyMap =

[viewer]
Help = f1
WrapMode = f2
Quit = f3; f10; q; esc
HexMode = f4
Goto = f5
Search = f7
SearchForward = slash
SearchBackward = question
SearchContinue = f17; n
SearchForwardContinue = ctrl-s
SearchBackwardContinue = ctrl-r
SearchOppositeContinue = shift-n
MagicMode = f8
NroffMode = f9
Home = ctrl-a
End = ctrl-e
Left = h; left
Right = l; right
LeftQuick = ctrl-left
RightQuick = ctrl-right
Up = k; y; insert; up; ctrl-p
Down = j; e; delete; down; enter; ctrl-n
PageDown = f; space; pgdn
PageUp = b; pgup; alt-v; backspace
HalfPageDown = d
HalfPageUp = u
Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
BookmarkGoto = m
Bookmark = r
FileNext = ctrl-f
FilePrev = ctrl-b
SelectCodepage = alt-e
Shell = ctrl-o
Ruler = alt-r
History = alt-shift-e

[viewer:hex]
Help = f1
HexEditMode = f2
Quit = f3; f10; q; esc
HexMode = f4
Goto = f5
Save = f6
Search = f7
SearchForward = slash
SearchBackward = question
SearchContinue = f17; n
SearchForwardContinue = ctrl-s
SearchBackwardContinue = ctrl-r
SearchOppositeContinue = shift-n
MagicMode = f8
NroffMode = f9
ToggleNavigation = tab
Home = ctrl-a; home
End = ctrl-e; end
Left = b; left
Right = f; right
Up = k; y; up
Down = j; delete; down
PageDown = pgdn
PageUp = pgup
Top = ctrl-home; ctrl-pgup; a1; alt-lt; g
Bottom = ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
History = alt-shift-e

[diffviewer]
ShowSymbols = alt-s; s
ShowNumbers = alt-n; l
SplitFull = f
SplitEqual = equal
SplitMore = gt
SplitLess = lt
Tab2 = 2
Tab3 = 3
Tab4 = 4
Tab8 = 8
Swap = ctrl-u
Redo = ctrl-r
HunkNext = n; enter; space
HunkPrev = p; backspace
Goto = g; shift-g
Save = f2
Edit = f4
EditOther = f14
Merge = f5
MergeOther = f15
Search = f7
SearchContinue = f17
Options = f9
Top = ctrl-home
Bottom = ctrl-end
Down = down
Up = up
LeftQuick = ctrl-left
RightQuick = ctrl-right
Left = left
Right = right
PageDown = pgdn
PageUp = pgup
Home = home
End = end
Help = f1
Quit = f10; q; shift-q; esc
Shell = ctrl-o
SelectCodepage = alt-e

обратите внимание на
Cut = ctrl-x
Store = ctrl-c
Paste = ctrl-v

в сочетании с настройкой в ini

clipboard_store=xclip -i -selection clipboard
clipboard_paste=xclip -o -selection clipboard

дает доступ к клипборду X-ов

Иксовый клипборд добавили в мастер

Тут подумали вот что: раз уж мы всё равно общаемся с иксами по поводу клипборда, почему бы у них заодно не спрашивать подробную инфу о состоянии клавиатуры? Чтоб отличать плюсик на малой цифровой клавиатуре от плюсика, который на кнопке с равно, например. Ведь в терминал обе эти кнопки отправляют один и тот же плюсик — различить их, не опрашивая клавиатуру через иксы, никак нельзя.

На днях код реализации этой концепции «гибридного ввода» добавлен в мастер. На локальных тачках работает вообще идеально. На удаленных, если канал с задержками, может поглюкивать (т.к. ввод от иксов и ввод в терминале приходят не одновременно) — поэтому на удаленные хосты лучше ходить из внутреннего терминала far2l, тогда хитрые сочетания клавиш будут пробрасываться его расширениями терминала и никаких глюков не будет.

Если хочется всё же юзать ввод через форвардинг иксов, а канал не очень стабильный, можно сделать так
#define XI_KEYDOWN_MAXWAIT_MSEC 1000
— у меня это существенно улучшило UX (это в TTYX.cpp)

появился автодетект таймингов этих, теперь вообще классно работать гибридный ввод стал (через far2l terminal extensions, однако, отзывчивее)

Для работы с иксами в mc по ssh рекомендую посмотреть в сторону ssh X11 forwarding. Возможно, понадобится утилита xclip
Фар и был крут, и есть. Помимо хорошей собственной функциональности и богатой экосистемы плагинов, у него есть ещё одно неочевидное поначалу достоинство — его писали люди со вкусом. Всё реализовано аккуратно, обстоятельно и с очень хорошим балансом по шкале «гик-домохозяйка» (если не считать синих панелей как таковых, которые не всем нравятся). Смотришь на аналоги: вроде бы и то, да не то. Это я сейчас имею в виду оригинал; надеюсь, что порт в этом отношении не сильно проигрывает.
Вы очень точно сформулировали именно то, что меня в значительной степени побуждает и пользоваться именно фаром, и развивать его. Спасибо!

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

PS: Как перекрасить синие панели в модный серый, в статье тоже есть. И, да, проблема синего на консоли на самом деле многих парит.
а многих и не парит, меня например, и синий нравится…
Синий же лампово очень. Как он может парить? Long live far2l!
>буфер обмена через ssh
это можно сделать через DISPLAY и xclip
нужно чтобы дисплэй указывала на хост с которого подключение происходит а xclip нужно просто поставить.
Ага. Так тоже можно, да. Я про эту фишку узнал уже после того, как в far2l удаленный клипборд завезли.

А ещё есть OSC52, который не поддерживается почти нигде, кроме Microsoft'овского терминала, и при этом он выглядит как идеалогически верный способ реализации того же самого. Но ни гномовская терминалка, ни кдешная в него пока не умеют. Тем более они этого не умели, когда far2l делать начинали.
Так в итоге то, кроме как «еще одна альтернатива» смысл существования фара под линукс?
Лет 20 назад используя виндовз фаром пользовался с удовольствием. В линуксе не придумалось зачем он.
Разве что тем кто на двух табуретах одновременно сидит — один привычный инструмент.
Разумеется, смысл существования фара под линукс — оправдываться его разработчикам перед странными людьми в интернетах!
Так себе затея если честно, перед кем то оправдываться.
Разве что тем кто на двух табуретах одновременно сидит — один привычный инструмент
молодец, истина где-то рядом :) все люди с которыми я знаком, сидят на как минимум двух табуретках, а других (однотабуреточных) людей я как-то и ни разу не видел. Это наверное должны быть разработчики седцевины RedHat, и то не уверен.
далее, как другой пример, все люди делятся на емаксовцев и на вимовцев, (не будем рассматривать набиральщиков текста одним пальцем в Ворде) но не два в одном на одинаково хорошем уровне (не будем рассматриватьтех кто может набрать несколько слов в обоих редакторах, и которым более того и не нужно).
И как вы думаете, почему так сложилось? :)
другой пример, все люди делятся на емаксовцев и на вимовцев

и на тех, кто не использует ни первый, ни второй. :)

НЛО прилетело и опубликовало эту надпись здесь
alexws54tk, JPEGEC, sumanai, and all :)
«не будем рассматривать набиральщиков текста одним пальцем в Ворде»
«не будем рассматриватьтех кто может набрать несколько слов в обоих редакторах, и которым более того и не нужно»

Все люди делятся на геев и на лесбиянок, (не будем рассматривать гетеросексуалов и тем кому это не нужно)?
Ой, блин, вот эта попытка поставить знак равенства между миром *никсов и вимом с емаксами (самыми контринтуитивными штуками для работы с текстом, которые только можно себе вообразить) это одна из главных вещей, из-за которых люди никсов боятся (и правильно). Простите, но для меня это звучит как «вы чем предпочитаете бутерброды делать, отвёрткой или пассатижами?». Отвертка и пассатижи — отличные штуки, и всё же я предпочитаю обычный нож. Извините. Спасибо.

Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE? Потому что это не удобные способы работы с текстом, дающие низкую продуктивность, и имеющие неадекватно высокий порог входа. Их придумали, когда нужно было пропихнуть какой-то приемлемый юзер экспириенс работы с текстами через телетайпы, в которых половины кнопок не было. В 2020 году в подобных ограничениях нет никакого смысла: нужно просто сделать в никсах нормальную консоль с поддержкой ВСЕХ кнопок. Что автор far2l и сделал, собственно.
Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE

Потому что они не IDE, а текстовые редакторы?

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

Потому что это супер удобные способы работы с текстом, дающие высочайшую продуктивность, но имеющие неадекватно высокий порог входа. FTFY.
И да, как я уже написал выше, они — не IDE, они очень крутые текстовые редакторы, из которых некоторые пытаются сделать IDE.
А кто пользуется этими замечательными редакторами для работы с текстом в коммерции? Писатели? Журналисты? Если там такая высокая продуктивность, то любого копирайтера должны с порога отправлять на курсы по этим штукам, чтоб денег больше приносил конторе за ту же единицу времени.

Но никто не отправляет ¯\_(ツ)_/¯
Писатели и журналисты потомучто тоже работают с текстом, но иначе чем программисты. Программисты тоже не пишут тексты в M$ Word ;)
Ну я пользуюсь Vim в коммерческой компании (на работе), так что ваше изначальное утверждение про «ни в одной коммерческой компании не используют» уже не верно. И некоторые коллеги мои в текущей компании и бывшие коллеги в других компаниях тоже пользуются. Их не много, но они есть. Я же не редактирую 100% текста в IDE, весь plain text, что не в IDE (которых, кстати, несколько) — в Vim. Ну и в тех IDE, которые это нормально умеют, у меня включен Vim mode.

Вы вот вроде пишете разумные вещи в соседних ветках, предлагаете не напрыгивать на mc, его пользователей и авторов, а сами, не разобравшись в том, почему люди любят Vim и Emacs, напрыгиваете на них.
Окей, разработчики вима с емаксами молодцы тоже! :-)
Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE?

Эм… Ну, во-первых, правильно тут отметили, что это не IDE. А во-вторых, я лично знаю людей, которые в vim кодят. И делают это не для себя...

Это наверное должны быть разработчики седцевины RedHat, и то не уверен.

Нет, вполне обычные люди. Без виндовс жизнь вполне себе существует.
И как вы думаете, почему так сложилось? :)

Затрудняюсь сказать, считаю оба продукта лютым трешем, хоть и уважаю героизм авторов.
Мэйнтейнер p7zip из Дебиана пока не ответил на мой email, по крайней мере.

так надо баг открывать, а не личные письма слать

Как минимум mc лог обновляет только по End. far умеет читать обновленный лог и показывать на экране (подобно tail -f) Мне например в mc не хватает возможности просмотра лога работающего в реалтайме приложения без дополнительных телодвижений.
Нужно потестить что-ли у себя
это давно сделано, но не совсем так.

запустите скрипт который будет писать данные в файл
например такой
#!/bin/sh
for i in `seq 1 200`; do
    sleep 2;
    echo $i;
done;

в mc нажмите F3 и если будете жать End то оно будет работать как tail -f, сделано это именно так потому что были определенные резоны.
«определенные резоны» видимо не убедили, поверьте, автообновление широко и полно обсуждалось, но «определенные резоны» были сильнее.
я немного знаю примерно всё про mc и far и пользуюсь обоими фм каждый день.
mc не умеет архивы с паролями, mc не умеет плагины, mc не умеет samba (та что вкомпилина устарела примерно на 20 лет, пробовал обновлять там это оооочень это непросто)
Да, согласен. Запароленные архивы и самба — с этим сложность. Плагины — не знаю. В Фаре не особо нужны были и в МС про них не вспоминал. Кому-то наверное нужны.
мне нужны, через плагины много чего допиливать можно.
Вот как раз 7z тянем статически вкомпиленную ради запароленных архивов, например. В libarchive, которая могла бы быть альтернативой, и есть в зависимостях, их поддержку добавили только в совсем свежих версиях, которых нет в дистрибутивах.

А вообще, как показывает практика, сделать хороший именно менеджер архивов для *nix — не такая тривиальная задача, как кажется на первый взгляд. Дьявол в деталях, мы эти детали улучшаем понемножку одну за другой :)
а как tar.gz обрабатываете? ведь tar.gz не хранит списка файлов и не отдает его и если нужно распаковать несколько файлов приходится распаковывать всё и это боль если такой файл большой.
Не вникал глубоко, релевантный код живет здесь, гляньте!
О, а раз вы знаете все про mc, скажите, как его научить нормальным сочетаниям клавиш, к которым так привык в far? В частности, выделение блоков в редакторе по Shift-стрелочки, вертикальные блоки, сочетания Ctrl-PgUp/PgDown для перескакивания начало/в конец файла, затем всякие странные сочетания типа Esc-M для поиска файла, которые в FAR через привычный Alt-F7. В остальном тоже работаю с обоими и уже привык. Но однозначно перейду на far2l.
настройка сочетаний производится в файле
~/.config/mc/mc.keymap

$ mc -F
выдаст актуальные пути конф. файлов.

поиском по этой теме найдите мои настройки Xterm и файла mc.keymap

кроме того необходимо «обучить» сочетания всяких ctrl-shift-pgdn и т.д. в файле ini
я нужные esc-последовательности узнаю запуская cat и нажимая их потом переношу в ini.
Пользуюсь Xterm и если нужно научить посылать сочетания то делаю это в файле настроек Xterm.

вот кусок моего ini файла для понимания
[terminal:xterm]
ctrl-f9=\\e[20\;5
ctrl f1=\\e[11\;5
ctrl f2=\\e[12\;5
ctrl f3=\\e[13\;5
ctrl f4=\\e[14\;5
ctrl alt right=\\e\\e[C
ctrl alt left=\\e\\e[D
ctrl alt up=\\e\\e[A
ctrl alt down=\\e\\e[B
alt right=\\e\\eOC
alt left=\\e\\eOD
alt up=\\e\\eOA
alt down=\\e\\eOB
alt end=\\e\\e[4~
alt home=\\e\\e[1~
alt pgup=\\e\\e[5~
alt pgdn=\\e\\e[6~
ctrl right=\\e[C
ctrl left=\\e[D
ctrl up=\\e[A
ctrl down=\\e[B
ctrl home=\\e[1\;5H
ctrl end=\\e[1\;5F
ctrl pgup=\\e[[5\;5~
ctrl pgdn=\\e[[6\;5~
alt end=\\e\\e[4~
alt home=\\e\\e[1~
alt pgup=\\e\\e[5~
alt pgdn=\\e\\e[6~
alt f7=\\e\\e[18~
alt 1=\\e1
alt 2=\\e2
alt 3=\\e3
alt 4=\\e4
alt 5=\\e5

f16=\\e[29~
f17=\\e[18\;2~
f18=\\e[32~
f19=\\e[18\;3~

alt-f1=\\e[1\;3P

complete=\\e[Z

#backtab=\\e[Z

alt shift right=\\e[1\;4C
alt shift left=\\e[1\;4D
ctrl-shift-left=\\e[[1\;6D
ctrl-shift-right=\\e[1\;6C
#ctrl-shift-home
#ctrl-shift-end

alt-f12=\\e[24\;3~
alt-f11=\\e[23\;3~

alt-f7=\\e[18\;3~

shift-delete=\\e[3\;2~

shift-tab=\\e[Z

ctrl-backspace=^h

ctrl-tab=\\e[z

ctrl-shift-tab=\\e[~Z


ctrl-shift-home=\\e[1\;6H
ctrl-shift-end=\\e[1\;6F



ctrl-kpasterisk=\\e[7\;OR~
ctrl-kpplus=\\e[7\;Ol~

Моя попытка посравнивать mc и far (именно far, а не far4l):

— Аккуратность интерфейса. При нажатии на ctrl, alt или shift подписи на плашках, соответствующих кнопкам Fx меняются, как-то все сразу понятнее.
— Встроенный редактор, интегрированный с буфером обмена. mc может запускать mcedit, а в нем с буфером обмена шорткаты зачем-то через F3..F6
— Клавиатурные шорткаты. Например, ctrl+alt+insert поместит в буфер обмена, не знаю, есть ли такое в mc. Ctrl+L с инфой о месте на диске. Был еще какой-то, вставляющий через пробел названия всех помеченных файлов в командную строку.
— Ну и вообще при переключении mc — far и обратно куча шорткатов меняется. Посчитать размер директории, поиск файлов на панели… Открыть на соседней панели ту же директорию — в far достаточно alt+F1 (или F2) и выбрать там тот же диск, в мс… не помню вот :).
— работа с ftp и scp через NetBox. в mc на scp зайти — хинты предлают писать команду cd /#sh:. Хм, я вроде в gui файл менеджере, а мне предлагают через командную строку работать
— Хинты в mc тоже интересная вещь. Вообще, есть мнение про UI, что если в нем есть какие-то подсказки, то что-то не так с самим UI. Вот я, допустим, нуб в линуксе, запустил mc, а он пишет: Hint: Want your plain shell? Press C-o, and get back to MC with C-o again. Вот как мне догадаться, что «С» — это control?
— Аккуратность интерфейса. При нажатии на ctrl, alt или shift подписи на плашках, соответствующих кнопкам Fx меняются, как-то все сразу понятнее.

Это проблема запущенного в терминале приложения, far2lc тоже никогда не сможет реагировать на нажатый и отпущенный ctrl или alt. Это невозможно.


— Встроенный редактор, интегрированный с буфером обмена. mc может запускать mcedit, а в нем с буфером обмена шорткаты зачем-то через F3..F6

У меня по ctrl-c, ctrl-v копирование/вставка, настройки выкладывал в этой ветке.

Это невозможно.

Это не ответ.

Это невозможно по причинам принципа работы консоли. Она не посылает esc- последовательностей если вы просто нажмете ctrl, понимаете о чем я?

Так да, разработчики фара годами ныли, что в *никс мол ограниченные терминалки, которые не позволят бла бла бла всю мощщ фара бла бла бла. А потом пришел elfmz и сделал порт, где фар сам себе терминалка.

Насколько получится через это вытащить на качественно новый уровень саму концепцию TUI в *никс? Время покажет :) Пользоваться этим прикольно, по крайней мере))

Это — повод поправить принципы работы консоли, чтобы посылала (с сохранением обратной совместимости, разумеется). Хорошо что хоть кто-то этим наконец-то занялся, пусть и в форме (пока?) нестандартного расширения.

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

far2l — идеальная площадка для разрыва этого порочного круга, потому что он и терминалка и аппа одновременно :)
Для подсказок по нажатию Alt/Ctrl/Shift как раз в far2l и используются экстеншны терминальные в том числе. Там приходят события KeyUp/KeyDown даже на отдельное нажатие модификаторов Alt/Ctrl/Shift. То есть да, в стандартных терминалках такое не сделать, но нам очень хотелось, поэтому в far2l такая продвинутая терминалка встроенная теперь.

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

Ну мы это в соседней ветке обсуждали, да, это будет работать только из-под VTE графического фара.
Хм, я вроде в gui файл менеджере

Уточнение: в TUI файл менеджере.

Примерно всем, MC — жалкая тень Far'а, subset.
Лишь бы клава не глючила так как в MC ну или была эмуляция, что-то типа Sublime'овской. И редактор в целом обновить бы чуть.
Я целенаправленно избегал формулировок, обесценивающих труд людей, создавших и продолжающих развивать mc. Они тоже молодцы, конкуренция TUI файл менеджеров обязательно пойдет на пользу обоим.

Вы примерно не правы.

Более того, мы регулярно подсматриваем в исходники mc, если там что-то сделано лучше, чем у нас. Вот --ee оттуда срисовали, например :)

--ее?

Ну да, это опция far2l, которая включает обработку ESC «как-в-mc», чтоб два раза нажимать не надо было.

Как раз хотел спросить как дабл esc отрубить.

Я примерно прав, так как использую оба, и больше 10 лет (считать лень, может и 20, не помню когда фар вышел. Если что — Volkov'а ещё на одной дискетке запускал. Если вы вообще в курсе что это.)

PS: Заметьте — я говорю о программах, а вы вот лепите отсебятину о незнакомом человеке.
скорее всего вы отвечали мне, я правильно понимаю?
пример «слепленной отсебятины» о незнакомом человеке приведете? (это что из подсознания про себя написали)
Вы волков навигатором померяться решили? да я начинал с БК и ЕСок и я повидал много файловых менеджеров, в том числе и VC. Только вот не пойму причем тут это. В написали свое оценочное суждение относительно того что какой-то из ФМ хуже ничем не обосновав, когда я указал на вашу неправоту вы решили включить эйджизм и до кучи обижульку.
Слушайте, ну настроение бывает плохое у людей, не ведитесь :)

Al_Azif тут человек реально в mc коммитит, пользу open source сообществу приносит, не надо на него прыгать, пожалуйста!
>>пример «слепленной отсебятины» о незнакомом человеке приведете
>>>>Вы примерно не правы

>>когда я указал на вашу неправоту
Вы наверное подумали, что ваше суждение — не оценочное, а высеченная в камне Истина, да? Смею вас огорчить…

PS: я ни на кого не напрыгиваю, по возможностям Far обставляет mc кратно. Если это у кого-то вызывает боль — нуштош, truth hurts. Никаких призывов к аргументации я не увидел, увидел вот это заявление, чуть выше.
mc существует лет 20, в виде дерева различной параллельности форков, и за 20 лет прогресс его печален. (извините, если это тоже кого-то вдруг обидит)
Когда конкуренции нет, прогресс всегда печален (см. политическая ситуация в РФ). Не было второго хорошего двухпанельника, работающего через ssh. А теперь есть. Будет конкуренция, будет и развитие. Ну и отлично же :)

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

С ходу — эскалация привелегий, чего в mc жутко не хватает, и о чём долго просят. Из за чего обычно бывает «sudo mc».
по F2 настройте sudo mcedit текущий файл
Очень часто бывает, что файл уже открыт, отредактирован, и надо сохранить, и тут — опаньки, прав не хватает.
Ну и повышение прав также нужно для разных операций с фалами, не только редактирования.
да самого бесит ) делаю
ctrl-a (пометить всё),
ctrl-c (copy)
esc, sudo mcedit файл
ctrl-a (пометить всё),
ctrl-v (paste)
А вот с этого момента прошу поподробней! :)

Как в mcedit выделить всё и отправить в системный буфер обмена? Я только мышкой умею, но это ограничивается одним экраном.

P.S. Создал mc.keymap по примеру выше. Но это же встроенный буфер, и если вызвать sudo mcedit, то он не подхватывается.
я уже писал выше, нужно поставить xclip, и нужно настроить mc.keymap поиском по теме найдите мои настройки.
Хочу отдельную стать написать но все никак не доходят руки.

Тем, что когда пользуешься двумя системами сразу, неудобно переключаться между этими инструментами. Привыкаешь к шорткатам Far-а, а тут на тебе — MC с совершенно другими шорткатами и интерфейсом. Можно, конечно, MC подтюнить, но одинаковости все равно не добиться.

я почти все сочетания клавиш сделал такими же как в far
ну вот у меня в NetBox 25 каталогов, в каждом от одной до сорока ссылок на серваки
mc так умеет?
так ото ж…
Я не знаю, но мне этого никогда и не нужно было. И врядли понадобится :)
Собственно, я интересовался чем Фар лучше МС, чтобы понять преимущества.
фломастеры у всех разные. мне нужно в закладках большое число SFTP ссылок, и желательно это все структурировать. по этому параметру для меня Far лучше.
ну и редактор в нем такой, что я только в нем и работал с исходниками 20 лет, и только последние года три перелез на VSCode, IDEA и PyCharm
пробовал, но под виндузой оно мне как-то не зашло, потому и остался на Far Editor + Colorer
кроме того, ни один из внешних редакторов не работает нормально, если файл надо отредактировать прямо на серваке. тут Far тоже вне конкуренции.
> если файл надо отредактировать прямо на серваке

Ха, с far2l я частенько прямо на серваке и пишу что-то :)) Вот эта вот фишка с terminal extensions (все хоткеи, клипборд) + удобный редактор с автодополнением и подсветкой.
удобный редактор с автодополнением и подсветкой.

Автодополнение — это хорошо, но. подскажите, что с отображением нумерации строк в встроенном far2l? Это (отсутствие нумерации) всегда меня бесило в ФАР.

падая от засыпания, все же выразажаю восторг :)
Scintilla это очень хорошо, без шуток.
То на что в ФарТиме презрительно плюются и крутят пальцем у виска :)
То что не в состоянии оценить люди которые здесь и сейчас в комментах (не вижу их реакции если честно), оценят миллионы по всему миру, так же гарантированно, как восходит солнце.
Не знать что такое Scintilla не грех конечно, но жизн; заставит узнать если ребята это дело качественно прикрутят :)
О, классно, что есть поддержка у замута этого :) Там оно уже запускается и работает в консоли, и даже уже на уровне, который может быть полезен в повседневном использовании.

Мне интересно туда именно клавиатуру и клипборд из far2l прикрутить, чтобы комфортабельность использования повысить. Ну и показать заодно, каким клёвым может быть UX TUI в *никсах, если расширения терминала far2l задействовать.

А там поглядим :)
Если вы эти соображения выскажете на английском (да хоть через гугл транслейт) автору этого замута, да хотя бы вот в этом тикете, это наверняка будет ему приятно и мотивирует продолжать работу! :-)
Я лично для себя отвечаю так:
Авторы mc изначально решили, что командер должен работать на любой системе, даже на тостере.
В результате они сильно ограничены в имплементации фич.
А мне не надо, чтобы оно работало на тостере. Мне надо, чтобы работало на моем достаточно стандартном компе, но чтоб все было удобно.
И вот эту задача проект решает на все сто.
Спасибо, доступно :)
С точки зрения админа, видимо, дело привычки больше. А вот с точки зрения прогера-автоматизатора прям очень лучше. Фар с колорером до сих пор закрывает большую часть нужд по допиливанию существующего софта. Не все удобно делать на всяких навороченных ИДЕшках особенно когда все разбросано по разным серверам абы как.
Крайне субъективный ответ: мне пользоваться FAR удобно, а mc — неудобно. Не знаю точно почему, просто раздражает, как-то всё в mc не так.
запустил far2lc, потестировал, вышел.
запускаю второй раз и вижу
hlms:~$ far2lc
argv[0]='far2l' g_strFarModuleName='/usr/lib/far2l/far2l' translation_prefix=''


Some far2l-s lost in space-time nearby:
 1: {/home/hlms} - Far 2.2 20201019-548e214 x64 hlms@ubuntu
Input instance index to revive or empty string to spawn new far2l


far2lc устаревшая история, она была нужна, когда для sftp нужно было gvfs-плагином пользоваться. Сейчас есть NetRocks и это всё не нужно. Можно просто «far2l --tty» запускать.

А насчёт сообщения, которое вы видите, это прикольная фишка, кстати. Допустим, вы зашли на сервер по ssh и гоняете там far2l. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась. Так вот, при таком раскладе far2l не умирает, а остается ждать переподключения, и при последующем запуске попробует восстановиться.

Но эта фишка может быть не совместима с far2lc, я не тестировал это. Так что попробуйте запускать просто как «far2l --tty».
far2lc устаревшая история, она была нужна, когда для sftp нужно было gvfs-плагином пользоваться. Сейчас есть NetRocks и это всё не нужно.

Буду этой фразой детей пугать. Идеально непонятная без контекста штука :)

Раньше не было других возможностей по сети ходить, кроме плагина-интерфейса к gvfs. Чтобы он хорошо работал на безыксовых серверах, запускать фар нужно было через обертку, которую я и написал — far2lc. А сейчас появился сетевой плагин NetRocks, которому gvfs не нужен, и обертка, соответственно, перестала быть нужна тоже.

Это нормально — иногда забывать, что вещи, в которых ты варишься, не обязательно очевидны всем окружающим))

Аналогичная ситуация - собрался, запустился, SSH-сессия оборвалась.
Теперь при запуске
./far2l
Some far2l-s lost in space-time nearby: 1: {/var} - Far 2.3 21/12/06-9b05774-alpha x64 root@ubuntu Input instance index to revive or empty string to spawn new far2l

Выдаёт что-то непонятное:
Some far2l-s lost in space-time nearby: 1: {/var} - Far 2.3 21/12/06-9b05774-alpha x64 root@ubuntu Input instance index to revive or empty string to spawn new far2l

Совет запускать far2l -- tty не помог - ошибка та же...

Что ещё можно попробовать?

Input instance index to revive or empty string to spawn new far2l

Выглядит как будто надо куда-то ввести цифру 1 или пустую строку...

Ага, 1 и Enter

--mortal

Этот аргумент применим только для far2l, который работает в режиме TTY. По умолчанию при закрытии терминала far2l продолжает работать 'в фоне' и при последующем запуске другого far2l в режиме TTY будет предложено активировать ушедший в фон far2l вместо запуска новой копии приложения. Этот ключ командной строки полностью отключает эту функциональность, так что закрытие терминала будет приводить к безусловному завершению работы far2l, работающего в нем.

Спасибо обоим комментаторам за советы.

Допустим, вы зашли на сервер по ssh и гоняете там far2l. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась.


Ну, замечу, что в случае когда нужна устойчивость сессии к обрыву — лушче вообще пользоваться screen'ом…
Ага, эта фича как раз и появилась тогда, когда выяснилось, что у far2l под screen проблемки. Сейчас far2l через screen работает, правда, экстеншны через него не пролезают, что обидно, так что фича осталась востребованной.

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

Лучший файл-менеджер после ДОС Навигатора (199х год). Когда нужно чуть добавить удобства к командной строке.

Наконец то и на Линухе, ачивка!
> Лучший файл-менеджер после ДОС Навигатора

Осталось добавить тетрис — и станет просто лучшим :)
ctrl+'+' не работает (

у меня Xterm настроен так чтобы esc последовательность генерировалась для ctrl+'+'
как этой последовательности научить far2lc?
Честно, не знаю. Могу предположить, что запил тикета в far2l и тэгание автора вот этого PR может помочь.
лучшего эмул. терминала чем Xterm пока не удалось встретить, у меня он очень кастомизирован чтобы все комбинации в mc работали.

мой конфиг Xterm
xterm*decTerminalID: vt340
XTerm*foreground: green
XTerm*cursorColor: darkgreen
XTerm*background: black
XTerm*scrollBar: False
XTerm*saveLines: 1000
XTerm*metaSendsEscape: true
XTerm*selectToClipboard: true
XTerm.omitTranslation: fullscreen
XTerm*font1:	-xos4-terminus-medium-r-*-*-12-*-*-*-*-*-iso10646-1
XTerm*font2:	-xos4-terminus-medium-r-*-*-14-*-*-*-*-*-iso10646-1
XTerm*font3:	-xos4-terminus-medium-r-*-*-16-*-*-*-*-*-iso10646-1
XTerm*font4:	-xos4-terminus-medium-r-*-*-20-*-*-*-*-*-iso10646-1
XTerm*font5:	-xos4-terminus-medium-r-*-*-22-*-*-*-*-*-iso10646-1
XTerm*font6:	-xos4-terminus-medium-r-*-*-28-*-*-*-*-*-iso10646-1
XTerm*font: -xos4-terminus-medium-r-*-*-22-*-*-*-*-*-iso10646-1
XTerm*VT100.Translations: #override                               \n\
    Ctrl        <Key>KP_Divide:   string(0x1b)  string("[7;OQ~")  \n\
    Ctrl        <Key>KP_Multiply: string(0x1b)  string("[7;OR~")  \n\
    Ctrl        <Key>KP_Subtract: string(0x1b)  string("[7;OS~")  \n\
    Ctrl        <Key>KP_Add:      string(0x1b)  string("[7;Ol~")  \n\
    Shift Ctrl  <Key>Tab:         string(0x1b)  string("[~Z")     \n\
    Ctrl        <Key>Tab:         string(0x1b)  string("[z")      \n\
	Shift Ctrl	<Key>Prior:       string(0x1b)  string("[5;6~")   \n\
	Shift 	    <Key>Prior:       string(0x1b)  string("[5;2~")   \n\
	Shift Ctrl	<Key>Next:        string(0x1b)  string("[6;6~")   \n\
	Shift 	    <Key>Next:        string(0x1b)  string("[6;2~")   \n\
	Shift       <Key>Insert:      string(0x1b)  string("[2;2~")   \n\
    <Btn1Down>:       select-start(CLIPBOARD)                     \n\
    <Btn1Up>:         select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
    Shift <Btn1Down>: ignore()                                    \n\
    Shift <Btn1Up>:   select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
    <Btn2Down>:       select-start(CLIPBOARD)                     \n\
    <Btn2Up>:         select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
    Shift <Btn2Down>: select-start(CLIPBOARD)                     \n\
    Shift <Btn2Up>:   select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
    <Btn3Down>:       ignore()                                    \n\
    <Btn3Up>:         insert-selection(PRIMARY,CLIPBOARD)         \n\
    Shift <Btn3Down>: ignore()                                    \n\
    Shift <Btn3Up>:   insert-selection(PRIMARY,CLIPBOARD)         \n\
    Meta   <Key>F9:   fullscreen()
Убунтовский пакет с гитхаба github.com/unxed/far2l-deb
Установка:
sudo dpkg -i ПАКЕТ_ДЛЯ_ВАШЕГО_ДИСТРИБУТИВА.deb
sudo apt-get install -f
sudo dpkg -i ПАКЕТ_ДЛЯ_ВАШЕГО_ДИСТРИБУТИВА.deb


По итогам — установлен фар, поставлено 200 мегабайт зависимостей, удалён фар.
Где нормальный пакет для дебиана взять?
far2l-deb делался преимущественно для себя, а у меня нет дефицита 200Мб ни на одной используемой системе.

Вам, скорее, подойдет вариант собрать .deb'ку самостоятельно. В CMAKE-скрипте с недавнего времени есть такая опция. Это прям вот в README прописано, раздел «Building DMG, DEB and TGZ packages».

Заодно, собирая вручную, вы сможете указать, нужен ли вам wx-бэкенд. Если собираете исключительно для консоли, это сэкономит вам изрядное количество места как раз на зависимостях.
Меня не 200 мегабайт беспокоят, мне не нравится то, что зависимости скачаны-установлены, а фар после этого сам удаляется. И зависимости потом остаются болтаться в системе.

На счёт собрать самостоятельно — там же ещё больше всяких зависимостей надо будет тянуть, чем для работы надо. Плюс я не программист, потому по сообщениям об ошибке мне бывает сложно понять, что от меня компилятор хочет.

К примеру, libpcre2-dev установлено, но конфиг всё равно ругается на то, что libpcre не видит.

Попробуйте libpcre3-dev. На последних Ubunt'ах именно так надо, возможно, в Дебиане тоже.
Ну и вообще:
[ 41%] Built target colorer_lib
Makefile:149: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2

Всё же собирать самому проекты на стадии альфы, если не являешься программистом, очень сложно. Потому я и предпочитаю пакеты.
Возможно, на Дебиан встанет какой-нибудь из пакетов из ppa. Но это не гарантированно, разумеется. А у вас какой именно дебиан, кстати? В принципе, я могу для вас собрать, это не очень сложно.
debian 9 stretch

Совет с libpcre3 прокатил, но сборка стала на 44% останавливаться.
А куда он логи сохраняет? Чтобы файлы взять, а не копировать всю простыню из терминала кусочками.

pastebin.com/5xnmiYmK — последние проценты
Тут всё чисто. Видимо, у вас сборка идет с -j ЧТО-ТО_БОЛЬШЕ_ЕДИНИЦЫ, и ошибка там сильно выше по логу где-то. Если запустить make с аргументом -j 1, ошибка с большей вероятностью окажется в самом низу лога.

Не сохраняет, вроде бы, никуда, если специально не попросить.
В инструкции по сборке j4 написано — так и запускаю.
Запустил с j1 — пока что собирается.

pastebin.com/t10H5zDx — вылет с j1.
make[2]: *** Нет правила для сборки цели «/usr/lib/libfmt.a»


Наверное, не хватает этого самого libfmt. libfmt-dev по убунтовски.
Если поставить libfmt3-dev, то даже конфигурация не проходит.
Заголовок спойлера
CMake Error at cmake/modules/Findfmt.cmake:15 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( - ) / 100": syntax error, unexpected
exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:15 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( - ) / 100": syntax error, unexpected
exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:15 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( - ) / 100": syntax error, unexpected
exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

-- Found fmt: /usr/include (found version "..")


CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( — ) / 100": syntax error,


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

Но для начала зачистить сборочную директорию. Все CMakeFiles и CMakeCache.txt.
Конфигурация с зачищеными файлами

Заголовок спойлера
# cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..

-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type: Release
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
-- Checking for module 'openssl'
-- Found openssl, version 1.0.2u
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
-- OpenSSL found -> enjoy FTPS support in NetRocks
-- Found LibSSH: /usr/lib/x86_64-linux-gnu/libssh.so (Required is at least version "0.5.0")
-- libssh found -> enjoy SFTP support in NetRocks
-- libsmbclient found -> enjoy SMB support in NetRocks
-- Found LibNfs: /usr/lib/x86_64-linux-gnu/libnfs.so
-- libnfs found -> enjoy NFS support in NetRocks
-- Could NOT find LibNEON (missing: LIBNEON_LIBRARY LIBNEON_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:133 (message):
libneon not found, NetRocks will not have WebDav protocol support.
Install libneon*-dev if you want WebDav protocol available in
NetRocks.

-- Found PCRE: /usr/lib/x86_64-linux-gnu/libpcre.so
-- Found LibArchive: /usr/lib/x86_64-linux-gnu/libarchive.so (found version "3.2.2")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- generating headers and languages
-- Found UCHARDET: /usr/lib/libuchardet.so
-- Build Colorer: 1.0.5
-- Found Spdlog: /usr/include
-- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
CMake Error at cmake/modules/Findfmt.cmake:15 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( - ) / 100": syntax error, unexpected
exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:15 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( - ) / 100": syntax error, unexpected
exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:15 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

CMake Error at cmake/modules/Findfmt.cmake:16 (math):
math cannot parse the expression: "( - ) / 100": syntax error, unexpected
exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
Call Stack (most recent call first):
colorer/CMakeLists.txt:43 (FIND_PACKAGE)

-- Found fmt: /usr/include (found version "..")
-- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
CMake Warning at CMakeLists.txt:231 (message):
Python plugin not enabled by default, use -DPYTHON=yes if you really
want it
-- Configuring incomplete, errors occurred!
See also "/home/aik/temp/far/far2l/build/CMakeFiles/CMakeOutput.log".
See also "/home/aik/temp/far/far2l/build/CMakeFiles/CMakeError.log".

CMake Error at cmake/modules/Findfmt.cmake:16 (math):


Ну, теперь нужно смотреть, что не так с этой строчкой. Почему вместо переменных пробелы. Возможно, libfmt нужен определённой версии. Или cmake.
В инструкции ничего не сказано про это.
Потому и говорю, что надо программистом быть, чтобы с альфа-версиями играть.
Качаю образ дебиана, чтоб глянуть самому :)

А libspdlog-dev у вас стоит? Попробуйте убрать libfmt3-dev и поставить libspdlog-dev.

Вот полная строчка зависимостей сборки без wx (но это с последней убунты, на Дебиане 9 чутка отличаться может):
sudo apt-get install git cmake g++ gawk m4 libuchardet-dev libxerces-c-dev libspdlog-dev libpcre3-dev libarchive-dev libssl-dev libssh-dev libsmbclient-dev libnfs-dev

Если не поможет, отпишитесь, пожалуйста, в этом тикете (можно даже переоткрыть). Эта история с spdlog/libfmt к нам со свежим Colorer приехала, уже были проблемки с ней.
А libspdlog-dev у вас стоит? Попробуйте убрать libfmt3-dev и поставить libspdlog-dev.

Уже установлен пакет libspdlog-dev самой новой версии (1:0.11.0-2)

Без libfmt3-dev оно конфигурируется. Ругается на libneon и питона, ну да хрен с ними.
Заголовок спойлера
# cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..

-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type: Release
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
-- Checking for module 'openssl'
-- Found openssl, version 1.0.2u
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
-- OpenSSL found -> enjoy FTPS support in NetRocks
-- Found LibSSH: /usr/lib/x86_64-linux-gnu/libssh.so (Required is at least version "0.5.0")
-- libssh found -> enjoy SFTP support in NetRocks
-- libsmbclient found -> enjoy SMB support in NetRocks
-- Found LibNfs: /usr/lib/x86_64-linux-gnu/libnfs.so
-- libnfs found -> enjoy NFS support in NetRocks
-- Could NOT find LibNEON (missing: LIBNEON_LIBRARY LIBNEON_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:133 (message):
libneon not found, NetRocks will not have WebDav protocol support.
Install libneon*-dev if you want WebDav protocol available in
NetRocks.

-- Found PCRE: /usr/lib/x86_64-linux-gnu/libpcre.so
-- Found LibArchive: /usr/lib/x86_64-linux-gnu/libarchive.so (found version "3.2.2")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- generating headers and languages
-- Found UCHARDET: /usr/lib/libuchardet.so
-- Build Colorer: 1.0.5
-- Found Spdlog: /usr/include
-- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
-- Could NOT find fmt (missing: fmt_INCLUDE_DIR fmt_LIBRARY)
-- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
CMake Warning at CMakeLists.txt:231 (message):
Python plugin not enabled by default, use -DPYTHON=yes if you really
want it
-- Configuring done
-- Generating done
-- Build files have been written to: /home/aik/temp/far/far2l/build

Тогда, похоже, вы баг нашли, ура! Зарепортил: github.com/elfmz/far2l/issues/813

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

Для того эта кнопка и существует. Более того, там можно ещё и отвечать по почте...

Ну мало ли чего там придумают. Вон тут ныли некоторое время назад, что в линуксе нет молодых разработчиков из-за того, что все по почте общаются, а в инстраграме и тиктаке не хотят разработку ядра обсуждать. :)
В общем, я не знаю, что именно помогло, но когда последний раз запустил сборку без libfmt3-dev — оно таки собралось.

cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release…
make -j 1

[100%] Building CXX object NetRocks/CMakeFiles/NetRocks.dir/src/Protocol/SplitLocationSpecification.cpp.o
[100%] Building CXX object NetRocks/CMakeFiles/NetRocks.dir/src/Protocol/Protocol.cpp.o
[100%] Linking CXX shared module ../install/Plugins/NetRocks/plug/NetRocks.far-plug-wide
[100%] Built target NetRocks

image
Здорово! А отпишитесь в тикете там, чтоб человека не напрягать зря тогда! Можно ещё .deb'ку выложить, чтоб другим время сэкономить, если cpack тоже норм отработает у вас.

UPD: ок, тикет я сам закрыл уже
not reproducing any more


Отлично починили сборку ;)
ну а как дебажить, если не репродьюсится?))

у меня вот дебиан9 нетинсталл вообще решил не устанавливаться в вирчуалбоксе, разбираться в причинах некогда пока, увы
У меня в debian 9 оно просто собралось.
Правда libneon27-dev, libssh-dev и libssl-dev конфликтуют :(
apt install libssh-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  comerr-dev krb5-multidev libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libneon27 libssl-doc
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  libssh-4 libssl1.0-dev
Suggested packages:
  libssh-doc
The following packages will be REMOVED:
  libneon27-dev libssl-dev
The following NEW packages will be installed:
  libssh-4 libssh-dev libssl1.0-dev


apt install libneon27-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libssh-4
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
  libssl-dev
The following packages will be REMOVED:
  libssh-dev libssl1.0-dev
libneon вообще странная. Она и в ubuntu 18.04 была сломана, емнип. Впрочем, с тех пор, как Яндекс сломал у себя вебдав, степень его востребованности заметно упала, имхо :)
Ну вы там определитесь, нужна она для сборки или нет ;) А то dll hell уже рядом.
А как мы можем за пользователя определиться, что ему нужно, а что нет? Нетрокс и без неё соберется, просто конкретно вебдава в нём не будет. Там все протоколы отдельными .so'шниками собираются.

Тем более, если это зависимости для сборки плагинов — зачем тянуть эти зависимости в основное приложение?

А что с вебдавом у Яндекса не так? Я пользуюсь им из-под винды из фара. Крайне редко, но позавчера работало. Проверил, еще работает.

Вот такое github.com/elfmz/far2l/issues/606
Ну впрочем это только на конкретно вот этой тестовой картинке воспроизводится, а на других файлах нет. Странность
cpack отработал, но при попытке установить пакет он корёжит зависимости и кроме как удалением они не правятся. И вообще, нахрена бинарнику в зависимостях *-dev?
Заголовок спойлера
dpkg -i far2l_2.2.0-1_amd64.deb
Выбор ранее не выбранного пакета far2l.
(Чтение базы данных … на данный момент установлено 104982 файла и каталога.)
Подготовка к распаковке far2l_2.2.0-1_amd64.deb …
Распаковывается far2l (2.2.0) …
dpkg: зависимости пакетов не позволяют настроить пакет far2l:
far2l зависит от libssl-dev, однако:
Пакет libssl-dev не установлен.
far2l зависит от libneon27-dev, однако:
Пакет libneon27-dev не установлен.

dpkg: ошибка при обработке пакета far2l (--install):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
far2l
root@banshee:/home/aik/temp/far/far2l/build# apt -f install
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Исправление зависимостей… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
libssh-4 zlib1g-dev
Для их удаления используйте «apt autoremove».
Пакеты, которые будут УДАЛЕНЫ:
far2l libssh-dev libssl1.0-dev
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 3 пакетов, и 0 пакетов не обновлено.
не установлено до конца или удалено 1 пакетов.
После данной операции, объём занятого дискового пространства уменьшится на 31,2 MB.
Хотите продолжить? [Д/н] n
Аварийное завершение.


Эт надо на гитхабе спросить :)

spdlog убран из зависимостей, попробуйте на свежем мастере!

Спасибо! Это прекрасно, что есть far2l!
2 года назад, перейдя на linux на работе я наткнулся на него и радости не было предела.
Воткнул его и на мак.
Так что на любой операционке вижу родные синие окна.
Небольшая благодарность автору порта, например, вот здесь, наверняка будет ему очень приятна :)
Появилась возможность сказать спасибо прям вот основному разработчику :) elfmz
Несомненно новость очень хорошая.
Спасибо разработчиками от всего сердца! Активно пользовался Far’ом под Виндами, когда полностью перешел на Линь, первое время очень его не хватало, перепробовал много двухоконных менеджеров, но все не то, включая MC (его юзаю только на удаленных серверах). Как только появился порт, сразу поставил, из исходников по началу приходилось компилить. Очень удобный и нужный для эффективной работы софт, я давний его фэн.
а как в редакторе far2lc скопировать текст в клипборд X-ов?
Обычно, Ctrl+Ins или Ctrl+C. Только это работает, только когда консольный far2l запущен внутри графического.
проверял в Xterm и terminal, почему то внутри far2lc клипборд работает а X-ы не отдает.
Консольный far2l внутри Xterm и не сможет увидеть клипборд иксов, ведь ему для этого нужен терминал, умеющий в far2l extensions. На данный момент таких терминалов существует два: 1) встроенный VTE графического far2l 2) Спецсборка putty.

Наверное, надо сделать fallback в xclip, если экстеншны не поддерживаются. Хорошая идея.
понял.
может предложите мэйтейнеру запилить как в mc через вызов xclip, там кода несколько строк.
Так да, запилил тикет. Либо elfmz сделает, либо, может, сам попробую. Нет никаких причин не давать людям использовать far2l через свой любимый терминал :)
в mc это сделано так — при нажатии хаткея копирования в клипборд содержимое копируется во внутренний клип-файл а дальше вызов

/* event callback */
gboolean
clipboard_file_to_ext_clip (const gchar * event_group_name, const gchar * event_name,
                            gpointer init_data, gpointer data)
{
    char *tmp, *cmd;
    const char *d = getenv ("DISPLAY");

    (void) event_group_name;
    (void) event_name;
    (void) init_data;
    (void) data;

    if (d == NULL || clipboard_store_path == NULL || clipboard_store_path[0] == '\0')
        return TRUE;

    tmp = mc_config_get_full_path (EDIT_HOME_CLIP_FILE);
    cmd = g_strconcat (clipboard_store_path, " ", tmp, " 2>/dev/null", (char *) NULL);

    if (cmd != NULL)
        my_system (EXECUTE_AS_SHELL, mc_global.shell->path, cmd);

    g_free (cmd);
    g_free (tmp);
    return TRUE;
}

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

Реализовал сам. Поглядим, примут ли в мастер. Ссылка та же.

Однозначный лайк.

Чтобы не блуждать по десяткам ссылок, вот, как делается установка на CentOS 8:

sudo -i
cd /etc/yum.repos.d
wget https://copr.fedorainfracloud.org/coprs/polter/far2l/repo/epel-8/polter-far2l-epel-8.repo
dnf -y install far2l
Там баг обнаружился небольшой в этом пакете, вот подробности с workaround'ом
github.com/elfmz/far2l/issues/819
far2l «форкнулся» от ветки Far 2

А почему 2, если уже лет десять как есть 3?
Автор утверждал, что в Far3 сильно больше Windows-специфичного кода, портирование бы шло тяжелее. А преимуществ каких-то радикальных для порта от такого решения он не нашёл.

Вот если бы задача порта была бы сделать не линуксовый, а кросплатформенный Far, и с апстримом регулярно синхронизироваться — тогда да, надо было бы форкаться от тройки. Только это утопия: апстрим совершенно не желает становиться кросплатформенным, и даже, по ощущениям, готов скорее препятствовать инициативе в эту сторону.

Поэтому скорее уж far2l обратно на винду портируют, чем разработчики «ванили» согласятся на кросплатформенность. А раз так, к чему на них завязываться? :)
Только это утопия: апстрим совершенно не желает становиться кросплатформенным
«Совершенно не желает» — это «делаю пулл-реквесты, а их не принимают» или что-то другое?
Разработчики вроде бы давно согласны.

Ага, согласны. На far2l они зачем-то напрыгивают — что на форуме, что в тикете, ссылку на который вы дали. Недостаточно идеален он для них. А альтернативы никакой не предлагают. Ну конечно никто PRы не будет слать при таких раскладах, когда ультиматум ставят «делайте идеально и так чтоб нас всё точно устроило, а как этого добиться на практике, мы и сами понятия не имеем».

Это история про «отложить до никогда». Обратите внимание, апстрим ни одного инфоповода на Хабре за последние 5 лет не создал. Там стагнация (вот что такого за последние 5 лет сделали в ванильном фаре, чтоб вам про это пост написать захотелось?), и, судя по всему, довольно токсичная атмосфера. Про сложности с разработчиками ванильного фара ещё reactos в своё время говорил, емнип.

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

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

UPD: Будем справедливыми: ссылки на far2l они из тикета и с форума не удаляют (хотя могли бы). То есть, оттоку потенциальных пользователей на far2l не препятствуют. Ну и славно :)

UPD#2: Ещё примечательно сравнить число звёздочек на гитхабе. Их у far2l и у ванильного фара примерно поровну. При том, что пользовательскую базу винды и линукса на сегодняшний день вы и сами можете сопоставить :)
Недостаточно идеален он для них
Так вроде бы все по делу? Если форк от старой версии и под несовместимой лицензией, то сами они к себе его не вмержат при всем желании.

вот что такого за последние 5 лет сделали в ванильном фаре, чтоб вам про это пост написать захотелось?
Я не очень представляю, что, в принципе, такого можно сделать в нишевом проекте с 25-летней историей, чтобы это был целый инфоповод. Все уже давно сделано, а что не сделано, то обработано напильником. Любой отход от канона сообщество все равно встретит в штыки. Что за последние 5 лет такого сделали, например, в vim, emacs или в том же mc с точки зрения «обычного пользователя», чтобы «вау»?

Судя по FAQ, в основном всё как у всех: «improvements and fixes».
Из заметного — настройки в файлах, true color UI, скриптование на lua. Наверное, на пост бы вполне хватило.
> Так вроде бы все по делу? Если форк от старой версии и под несовместимой лицензией, то сами они к себе его не вмержат при всем желании.

Всё так, при этом это не повод на хороших людей прыгать :)

Что ж теперь, либо у нас будет два разных фара, либо в какой-нибудь один вклеят рано или поздно таки кроссплатформенность. По-моему, с этим у far2l шансов больше, но это имхо и я не нейтральная сторона здесь :)
Возможно, проблема здесь исключительно в том, что гипотетическое слияние — штука крайне трудоемкая: нужно как минимум переписать весь GPL-код, заимствованный из Wine, а потом «пересадить» на мультибэкендовую конструкцию Far3, сделав winapi отдельным бэкендом, а все виндовые фишки — отключаемыми на других платформах. Трудозатраты тут сопоставимы с написанием far2l от первого коммита до текущего состояния, а выгоды никакой особенной пользователи не получат ни на винде, ни на линуксе: ещё ни в одном тикете far2l не жаловались на отсутствие скриптов на lua, truecolor или неудобство формата хранения настроек.

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

А вот что было бы хорошо, так это договориться об общих стандартах/интерфейсах. Например, сделать поддержку far2l terminal extensions в командной строке виндового фара, чтоб оттуда можно было без всяких патченных putty сделать ssh что-нибудь.рф, запустить там внутри far2l и чтоб кнопки и клипборд подхватились. Но для этого разработчикам виндового фара надо всё же признать право на существование far2l и тот факт, что никакого другого порта нет и не предвидится, а это им очень больно, по-видимому.
А вот что было бы хорошо, так это договориться об общих стандартах/интерфейсах. Например, сделать поддержку far2l terminal extensions в командной строке виндового фара

Так там же договариваться просто не с кем, виндовый фар за создание pty не отвечает, как и openssh. Это надо MS просить conhost доработать, но для этого надо сначала far2l terminal extensions сделать стандартом.

… а для этого хотя бы документацию дописать. Я в процессе :) И, помимо документации, демку ещё сделать хочу.

Впрочем, за создания pty он, может, и не отвечает, но перехватывать пробегающий там контент, вытаскивая интересные ESC-последовательности, или, наоборот, inject'ировать их туда — он может? Или нет?

Скорее не может чем может: если перехватить вывод другой программы — та это заметит и может решить что она вообще от консоли отключена.


Теоретически ESC-последовательности может обрабатывать OpenSSH, но, насколько я знаю, они этого делать не хотят, потому что полноценная реализация VT-протоколов сложна и в основной линукс-версии нужна как корове седло.

Угу, так и думал, выглядит так, будто придется openssh форкать под это. Если они никакие ESC обрабатывать не хотят, то уж кастомное расширение конкретной проги — тем более вряд ли.

С другой стороны, на винде много всякой магии бывает. Вон, ANSICON как устроен, заметьте.

Именно его код, кстати, в far2l как раз во внутреннем VTE используется :)
Вспоминал два дня название терминального ПО, которое использовалось на одном предприятии для доступа с Linux и Windows к серверам. Меня тогда ещё удивлял довольно нескромный размер ПО, по сравнению например с putty. Но оно поддерживало печать, передачу файлов и могло эмулировать некоторые esc-последовательности, которые не удавались в putty.
Так вот это Micro Focus (WRQ, Attachmate) Reflection. Возможно, есть смысл полюбопытствовать на начинку?
Ой, ну я слишком ленив, чтоб для всех терминалок поддержку экстеншнов писать. Я лучше документирую их и сделаю демо аппу, чтоб желающие дальше сами там могли всё это..))

В принципе, если код спецсборки putty несколько причесать, он вполне мог бы служить демкой «как-прикрутить-такое-к-любимой-терминалке».
Тема как раз всколыхнула общественность, возможно кто-нибудь встречался с Reflection и сможет прокомментировать его возможности в плане генерирования нестандартных esc-последовательностей и прочего.
А экстеншны не сводимы к простой отправке определенных последовательностей при нажатии определенных кнопок. Это прям особый режим работы терминала, где клава, например, шлётся ТОЛЬКО в этой вот особой форме (там фактически клавиатурные ивенты из винапи, закодированные в base64). И этот режим нужно определенным образом включить и дождаться определенного ответа. Просто сказать терминалке «шли вот это сочетание клавиш вот так» — не сработает.
Можно ой как много чего сделать в недоделанном и нишевом ФАРе, чтобы он перестал быть недоделанным и нишевым.
Ну реально, забавно когда утверждается о некой идеальности ФАРа, этим и сам Рошаль грешил, но чаще всего грешат люди которые ФАРом и не пользуются.

Команда ФАРа сделала достойный восхищения рывок внедрением Луа в 2012 году, но с тех пор — реально все.
Далее — не очень тщательное и осмысленное допиливание интеграции с Луа (хотя это важно),
и рефакторинг Сишного кода. Это тоже важно, там очень много чего надо реально рефакторить,
и очень хорошо что @ДркНсс этим старательно занимается.
Но с точки зрения потребителя говорить реально не о чем за последние 7 лет.
Не знаю что с Emacs, но ка пример который я знаю, Брам (создатель Вима) сейчас усиленно пашет на свой язык Вим-скрипт, для улучшения интеграции.
Я все равно не хочу учить этот язык (есть способ писать и на Луа в Виме),
но у Брама есть цель и понимание что надо делать для развития продукта.
А нынешняя команда ФАР(3) вызывает ощущение что где-то заблудились,
но им там хорошо самими с собой ))
Про важность Lua выскажитесь здесь в каментах, пожалуйста! Ни автор порта elfmz, ни я этим на винде не пользовались, поэтому нужно, чтоб было видно, что это прям востребованная фича, нужная людям. Лучше прям вот с конкретными юз кейсами, и с объяснением того, чем реализованная в far2l идея скриптования на питоне не подходит.

По поводу Far3 разделяю ваш взгляд на ситуацию :)

А что касается рефакторинга, новый код elfmz очень красиво и чисто пишет (в NetRocks гляньте для примера), а что касается старого, по его поводу, как я понимаю, пока позиция «не надо чинить то, что не сломано».
А нынешняя команда ФАР(3) вызывает ощущение что где-то заблудились,
но им там хорошо самими с собой ))

Я лично крайне редко обновляю фар — по принципу "работает, не трожь". Чего там пилят — узнаю случайно из подобных тредов. Опять же, если мне чего-то не хватает, пишу сам. Правда, на c/c++ писать как-то не с руки, поэтому пишу на C# (да, такая возможность есть через отдельный плагин). Последний раз писал плагин для когда-то годного сервиса Amazon Cloud Drive (где был безлимит на хранение файлов). Потом забрали безлимит, а еще позже и доступ через АПИ, поэтому плагин потерял актуальность, а Амазон мои денюжки, но это уже другая история. Зато я переписал плагин под Pcloud, где дают место размером 2TB на 99 лет (ну, давали, как сейчас не знаю) за единоразовый взнос. Так вот, к чему я. А к тому, что пользователям таких продуктов как Far, если они свыклись с тем, что есть, особо ничего от разработчиков и не надо. Ну максимум какой-то файн-тюнинг. Отсюда и видимость стагнации. И тот факт, что "им хорошо с самим собой", уже прекрасен. Хорошо, что интерес не теряют.


P.S. Подумалось тут, а ведь утилиты ls, find, chmod, chown — тоже стагнируют. :)

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

Ну конечно ничем кроме форка такая политика закончится не могла.
они выдумывают смешные отговорки и пилят что угодно кроме самой нужной людям фичи.

Это же их право, не правда ли. Хотя, я думаю, если бы кто-то проспонсировал, то ситуация бы изменилась.


P.S. Я, правда, спонсировал как-то разработчика плагина NetBox, а он редиска накормил обещаниями и ничего не сделал, но то такое — я допускал риск :)

Да, разумеется :) Никто ж не предлагает запретить им. Тут, скорее, вольные обсуждения того, надо ли держаться за апстрим, или не очень. И пока аргументов в пользу «не очень» больше.

Автора плагина Lua для Far тоже вначале на форуме клеймили, что, мол, ненужно. Однако, потом приняли.
Просматривается тенденция – главные прорывы за десять лет сделали люди не из Far Group.

НЛО прилетело и опубликовало эту надпись здесь
Ждем от вас поста про ВАУ ВАУ ВАУ! А то как же так, где-то запилили что-то классное, «а пацаны-то и не в курсе» :))
НЛО прилетело и опубликовало эту надпись здесь
То, что там внутри все стало лучше/быстрее/сильнее/выше — несомненно, но речь же про пользователя, а пользователь, как правило, валенок.
Я вот в виме описания к коммитам пишу (потому что он по умолчанию), как каналы улучшают мой workflow?
НЛО прилетело и опубликовало эту надпись здесь
По reactos там была история в бородатых годах, когда хотели Far в нём (еще не было win-GUI). Он собирался, но по лицензии не могли. Попросили, автор отказал.
Не, я про более позднюю историю, когда Брагин предлагал чувакам из Far Team инфраструктуру для разработки актуальную и удобную, но они не захотели, а остались сидеть на каком-то дичайшем legacy. Но это когда было. Сейчас-то на гитхабе уже все.
Окей, ладно, чуваков из ванильного фара тоже можно понять. Приходит к ним какой-то чел и говорит: «парни, я тут ради линукс-порта решил выкинуть результаты вашего труда за последние несколько лет — как по мне, этот труд был не очень-то и нужен». Ну и как им было реагировать на такое? И что делать теперь? Признать, что несколько лет ерундой занимались, выкинуть Far3 и начать впиливать в far2l нтфс-потоки обратно?

Ситуация печальная, конечно. Но есть так как есть: скорей уж far2l перенесут обратно на винду, сделав ещё один бэкенд (было: wx/*nix_tty, станет wx/*nix_tty/console_winapi), чем ваниль кроссплатформенной станет.

Кстати, под cygwin far2l собрали уже ради интереса :)
«Нет повести печальнее на свете ..»
читал перебранку автора фар2л насчет портирования ФАР2 на никсы.
обе стороны могли бы быть тактичнее и продуманнее, но это трудно, по себе знаю :)

Я слышал краем уха что одной из основных задач постоянного рефакторинга @ДркНсса это отделение и вынос платформозависимого кода от универсального.
В то же время он ничего никому не говорит про эту задачу, у него «рефакторинг» и все.
Еще я знаю что к качеству кода он очень тщательно относится, и я ему доверяю, человек умный.
В то же время, он, как и вся команда ФАРа, очень наплевательски относятся к лицам предлагающих сотрудничество в развитии.
С еще одной стороны, они все могут быть очень и очень неожиданно дружественными к пользователям «от сохи».
Создание всех этих бесчисленных справок например, само наличие форума — в огромный плюс ФарГрупу.
все очень неоднозначно с ними, но как итог — я считаю что ни развития ни элементарных недоделок с 90-х там в ближайшие 10 лет не будет.
Хотя люди в Сях и нутрях ФАРа очень сильные, на мой взгляд, но в остальном — у меня есть сомнения
Бесчисленное количество «Но» там. Сплетничаю конечно, но наболело просто
> обе стороны могли бы быть тактичнее и продуманнее, но это трудно, по себе знаю :)

Могли бы. Если б от дружбы-интеграции могли как-то выиграть пользователи. А пока никакой практической выгоды от дружбы не вырисовывается, можно и попрыгать друг на друга иногда))

> Я слышал краем уха что одной из основных задач постоянного рефакторинга @ДркНсса это отделение и вынос платформозависимого кода от универсального.

Ой, ну это уже классическая «история Пети и Васи», хоть в палату мер и весов неси. Пока они там будут делать идеальный код, все потенциальные пользователи с никсов уже давно в фар2л утекут, сделают там суперкомфортный ФМ с толпой сторонников, а код зарефакторят в каком-нибудь отдаленном светлом будущем, толпой это не сложно совсем.

> В то же время он ничего никому не говорит про эту задачу, у него «рефакторинг» и все

Угу. А итеративные процессы разработки с постоянной обратной связью ведь не просто так придумали (RUP там, Aglie всякие etc), а как раз чтоб в такую беду не угодить.

> Еще я знаю что к качеству кода он очень тщательно относится, и я ему доверяю, человек умный

Так новый код у elfmz тоже практически идеального качества, вы исходники NetRocks видели? Можно в учебниках по плюсам печатать, по-моему.

> очень наплевательски относятся к лицам предлагающих сотрудничество в развитии

Вот тоже так показалось, да. Очень сложно айтишникам понять, как это гуманитарные факторы могут в бОльшей степени определять перспективы ПРОГРАММНОГО продукта, чем технические. А вот: программы-то люди пишут.

> Бесчисленное количество «Но» там. Сплетничаю конечно, но наболело просто

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

PS: Ну и да, как тут не вспомнить Джоела с его «никогда не переписывайте с нуля»? Тут не с нуля, правда, но логика та же: на полировку и так работающего кода тратятся усилия, которые могли бы пойти на нужные юзерам здесь и сейчас штуки, и в итоге теряется пользовательская база в пользу конкурирующего продукта, который меньше парится по поводу идеального кода и больше думает о пользователях.
Самое смешное, что @Drkns тоже ссылается на йоэля.
логика такая, — нельзя сделать ничего стратегически полезного на плохом фундаменте,
потому что это будет пирамида из костылей, рассыпающаяся от малейшая тычка,
работать с этим будет мучение, будут нечинимые баги,
как и в силу этого не будет дальнейшей функциональности.
А сейчас он отделяет зерна от плевел, упрощает и улучшает код,
делает его реформо-пригодным, дружественным к человеку с нуля.
Это не цитата, а смысл его деятельности,
сам он по другому сказал, но ровно в этом смысле.
В принципе-то, я понимаю о чем он говорит, знаю не понаслышке что такое нереформируемый код.
У меня претензия в том смысле, что:
— а нельзя ли иметь все-таки какой-то план и какие-то сроки?
— а нельзя ли озвучить причины почему то-то и это вдруг так невыполнимо? (я лазил в коде, знаю что вродь легко выполнимо)
— почему там и сям наложены какие-то необьяснимые табу на ровном месте?

Далее, вот @DrkNss как раз очень против переписывания с нуля, он именно перебирает код, и это действительно итеративный процесс.
Как Джоэль и завещал типа, и я ему верю, мне это импонирует, хотя Джоэля я особенно много не читал :)
Жаль правда что Джоэль ему заодно не рассказал и про методы agile, и что с пользователями тоже надо итеративным как-то быть,
если они конечно нужны эти пользователи
А откуда вообще эта история, что код старого фара (например, того самого Far2, от которого far2l форкнулся) — плохой? Для меня это не очевидно. Этот код 1) использовался годами 2) протестирован 3) собрал огромную толпу пользователей 4) и не приводил к потерям данных. И это код считается плохим? Глупость какая-то. Это просто отличный код. Да, мы там находим иногда всякие мелкие шероховатости, но ничего такого, что можно было бы назвать «нечинимым».

А то, что этот код не соответствует представлениям о прекрасном конкретного человека — проблема этого человека, а не кода :)

Снова вот Спольски процитирую: код не ржавеет.

Что же до нечинимых багов, то что-то я не вижу хабрапостов с заголовком «ура, мы починили в Far3 баг, сидевший там 10 лет и бесивший всех», набирающих по 100+ лайков.

Я не согласен практически ни с одним из тезисов.


  • Код Фара очень разнороден, во многих местах практически безнадёжен. elfmz говорил, что код копирования файла проще выбросить, чем починить; я попробовал, и я согласен.


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


  • "Огромную толпу пользователей" собрал оригинальный Фар. Текущая группа поддержки её растеряла, поскольку она, как многие заметили, не очень дружественна к новым пользователям и даже контрибуторам.


  • "Не приводил к потерям данных" – ну вот у меня копирование файлов добавляет 1 час к таймстампу. Это потеря данных. Работает оригинальный виндовый код, см.п.1.


  • У кода есть критерии чистоты. Их формулировали, среди многих, МакКоннелл, Мартин, Фаулер.


  • Не знаю, в каком контексте говорил Спольски, но код не только ржавеет, но и гниёт, если активно не поддерживать чистоту архитектуры, но при этом добавлять фичи или даже просто чинить баги.


«ну вот у меня копирование файлов добавляет 1 час к таймстампу. Это потеря данных.»
Также Far теряет время создания файла при переносе даже между томами, если нужно сохранить приходится пользоваться WinRar'ом.
> код копирования файла проще выбросить, чем починить

К слову, коду копирования файла таки написана альтернатива: в NetRocks есть псевдопротокол «file», который умеет копировать файлы. Нужен он затем, что обычное копирование в фоновый режим перевести не получится, а вот NetRocks такое умеет.
Для обретения дзена советую почитать исходники ядра линукса, ну и за компанию glibc. И осознать, что на этом фундаменте держится чуть менее чем вся современная айти инфраструктура. Вот уж где управляемый хаос в действии…
Я уже где-то сказал, но еще раз повторю, upstream (@ДркНс) делает постоянную работу по улучшению качества кода,
а там реально есть что улучшать, унаследована куча багов, и это лечение, да проделывается.
На уровне слухов — в этот его рефакторинг входит и отделение кросс-платформенного кода от зависимостей.
НО )) никто ничего точного сказать не может, разве что рыться в Сишном коде.
Если же @elfmz порылся и не был в востроге от того что нашел,
то его скептицизм вполне возможно был обоснован.
при условии что @elfmz понял что он там нашел конечно ))
а так — реально никто не знает чем там занимается @ДркНсс,
может просто развлекается на досуге перетасовывая код.
Спрашивать — бесполезно, спрашивали уже, многие, и не один раз, и по-всякому
PS
Упс, увидел ответы unxed на мое то же самое мое многословие, после того как еще раз запостил на ту же тему, извиняйте, в итоге я все равно все прочитываю, и внимательно :)
Ну явно же мы тут сталкиваемся не с техническими сложностями, а с социальными. Не может общественно-важный проект существовать вот так вот без обратной связи в полностью закрытом режиме. Рано или поздно появится форк, работающий более открыто, делающий понятные людям изменения, не игнорирующий обратную связь.

Пользователи виндового фара такой форк до сих пор не сделали, по-видимому, по той единственной причине, что им и в unicode far 1.80 уже в основной массе всего хватало :)
Вот, только он несвежий и его наверняка понадобится доработать напильником. Поделитесь результатом, если получится?
Вот сюда обратите внимание
-- Could NOT find LibNfs (missing: LIBNFS_LIBRARY LIBNFS_INCLUDE_DIR)
-- Could NOT find UCHARDET (missing: UCHARDET_LIBRARY UCHARDET_INCLUDE_DIR)
Could NOT find Spdlog (missing: SPDLOG_INCLUDE_DIR)


Без первого он, скорее всего, соберется (только у вас не будет NFS в NetRocks'е). Без UCHARDET, похоже, тоже может. А вот без SPDLOG, который нужен Colorer'у — не хочет.

Вообще это баг — в такой ситуации CMAKE'у следовало бы просто не собирать Colorer. Можно тикет запилить :)

Да, я понимаю, что зависимостей не хватает. Но прямо сейчас нету времени этим заниматься. Да и надо же все красиво тогда сделать с USE флагами, иначе какой в этом смысл? :)

Ну для начала я бы попробовал spdlog поставить и просто посмотреть, что будет, ради интереса))

А вот без SPDLOG, который нужен Colorer'у — не хочет.

spdlog из зависимостей убран, если что :)

Уже год назад прекрасно работал на малине:
image
Спасибо за труд!
Обязательно поблагодарите основного разработчика, elfmz. Сделать это можно в каком-нибудь тикете на гитхабе, например, в этом.

Моей работы там только маленькая часть. А вообще 35 человек контрибьютит уже :) На хабре ещё есть lieff, он тоже в far2l коммитит.
Спасибо авторам! Уже два года пользуюсь. mc даже радом не стоял по удобству. Единственное пожелание — это прикрутить поддержку Windows Terminal. Сейчас активно использую WSL2 и проблема с доступом к буферу обмена удручает. Пропатченный putty отчасти решает проблему. Но хотелось бы имеено Windows Terminal.
А запилите тикет! Назвать его надо «add clipboard support via OSC52 escape sequences, for Windows Terminal/WSL2» и там дать ссылочку вот сюда. Если я напишу, будет выглядеть так, будто это только мне надо, а там и так пол багтрекера тикетов от меня. Так что лучше вы сами!

UPD: А, уже есть же, точно. Тогда там надо прям вот написать в тикете, что с putty «ощущения не те»))

После вот этого коммита вы можете такое устроить, если в WSL2 поставите пакет libx11-dev и будете держать работающим какой-нибудь X-сервер. Ну то есть если у вас иксовые приложения из WSL2 работают, заработает и клипборд в far2l в windows terminal.

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

Попали уже несколько лет назад (ALT, AUR, FreeBSD, nix, Rosa)

Кстати, чтобы проще было попасть в пакетные репозитории неплохо было бы ответственнее относиться к релизам. А у вас в cmake версия 2.2.0, а в тэгах какое-то alpha-17sep20.

Спасибо, это соображение в тикет запилить однозначно стоит!
Добавим звездочек на ГитХабе!
Но зачем?
В мастдайке Far очень нужен: из-за того, что в ней отсутствует bash и coreutils. Но в линуксе за глаза mc хватает!
Но зачем?

Удобно, когда привычные инструменты в разных ОС работают похоже.
80+ каментов с благодарностями и обсуждением, как лучше всего пользоваться, как бы намекают, что не нужен, да, никому совершенно. Но это вот «не читал, но осуждаю» всё равно в каждом посте всплывает, я каждый раз конфетку беру с полки и ем, когда такое вижу, типа БИНГО!

Осторожнее, диабет страшная штука, а вы нам ещё нужны.

А где связь между bash и far? Это ни разу не альтернативы друг другу, они разные задачи решают.

а причем здесь баш, в линукс нанем свет клином не сошелся, есть еще куча интерпретаторов командой строки :)

… ни один из которых не является альтернативой far, потому что far не является интерпретатором командной строки.

в mc есть один минус — он не развивается.
Ну зачем вы так, здесь прямо в каментах есть человек, который коммитит туда :)
А это кто? :) хочу немного поругаться за отлуп Mooffie с его Mc2Lua (Lua in MC).
Понятно что Mooffie и сам мог бы быть понастойчивее,
но я видел результат его работы, и, извините, теперь результат его, а шишки — ваши :)
smind, только не надо ни с кем ругаться, надо дружить и всегда по умолчанию подразумевать добросовестность.
>А это кто?

да кто-ж его знает.

>хочу немного поругаться за отлуп Mooffie с его Mc2Lua (Lua in MC).

никто Муфи не прогонял, андрей довольно активно пилил в то время систему виджетов, а для lua в mc довольно много пересечений по виджетам. Кроме того я патчи муфи смотрел там весьма неряшливый код и причесывать его он не очень то планировал. Как то так. Мне его патчи весьма интересны но сейчас довольно сложно слияние сделать ибо кодовая база API по работе с интерфейсами сильно изменилась за несколько лет.
И да хорошим патчам всегда рады.
самая прекрасная и разумная вещчъ что была в фаре перекочевала и в линукс — я про запрос повышения прав :)
надо отредактировать конфиг в /etc — идешь и редактируешь. фар2л если нужно запросит права рута для сохранения.
в мс такого нет от слова сафсем, либо заранее печатать «sudo nano ./конфиг», либо измененное сохранять в буфер куданить в /run /home И т.д. и потом оттуда копировать взад. т.е. геморой
есть некоторые удачные фишки в mc, типа бвстрого перехода по набираемому пути, но дождемся релиза того что есть, а там уж посмотрим.

Тоже это напрягает.

Сейчас в новом релизе mc починится родовая травма с ctrl-o и оно наконец то не будет глючить и комстрок не будет общей. На днях это было влито в мастер.

так общей или нет ??
разобщенность ком.строки в мс после фара жутко бесило.
теперь будет общая ком.строка, содержимое не будет теряться и не будет надоедливого «что сабшел уже занят»
отлично
Почему у меня не включается? Что я делаю не так?
Чуть более подробный баг-репорт был бы уместен. Что не включается? Что вы делали? Какой ожидали реакции? А что произошло вместо этого?

Ну как обычно, когда баг репорты пишут, все эти скучные, но важные подробности, если вы понимаете, о чём я :))
Вы правы. Исправляюсь.

Far 2.2 build unknown-alpha Linux x86_64
Enable sudo privileges elevation on
CentOS 8 Linux 4.18.0-193.19.1.el8_2.x86_64
Putty4far2l

$ groups
adm wheel systemd-journal docker sudoers

Захожу в /etc
Открываю редактором hosts
Добавляю комментарий
Жму F2

Ожидаемый результат:
Предложение выполнить через sudo

Получаемый результат:
Editor Error 5 Cannot save the file hosts. Retry Cancel
Воу, похоже, вы и правда баг нашли! Скорее пилите тикет с этим вот описанием!
Я ждал этого коммента
Засабмитил
Поставил. Как же круто!!!
Я уж привык к mc, но тут пальцы сами все вспомнили.

Спасибо за ваш труд. Рад, что многие стали чуть счастливие. Но у меня вот такая ситуация: на десктопе и дома и на работе я сижу на Linux с KDE. И юзаю файловый менеджер Dolphin.Его функционала хватает. По работе админю тыщи серверов на Linux самых разных. Ставить туда far не получится, нужно чтобы все было стандартно и минимально, из каропки. Зашёл, быстро сделал, ушёл на долго. Нельзя просто взять и начать ставить на прод такие штуки. Тюнить их, плагины, репы, зависимости… Если надо сделать что то простое, то хватает консоли. Если сложное, то уже не руками, а с помощью, например Ansible.

Ну, как раз для 1000 серверов один раз пакет собирается со всем уже настроенным под ваши нужды, и потом устанавливается в скрипте инициализации инстанса сервера одной строчкой :) Вам ли не знать))

Не, я имею ввиду обоснование. На каждый софт, либу, репу. Нужно получить апрув, начиная с безопасников. Они спросят, зачем тебе прикладной софт на этих серверах… и, будут правы. Но, если кому то можно ставить любой софт не на свои личные хосты, а тем более на сервера клиентов, то вопросов нет)

Действительно, зачем? При том, что до серверов есть SFTP?

Far manager даёт n-кратное ускорение определённых операций именно при работе с локалхоста. За счёт netbox, встроенного редактора с потрясающим UX (+colorer), запоминания последних введённых команд (в данном случае, «cd /path/to/folder») не помню только «из коробки» или через плагин.

Пример из практики. До железки/ВМ есть медленный (потому что далеко) лагающий (e.g. потому что Китай & великий файервол) канал. Что-то нужно посмотреть/подрихтовать «вот прямо сейчас». Потому что площадка новая и всего сразу не задеплоишь.
— Коллеги со 100% linux-бэкграундом: лезут из консоли по ssh и дальше долго и мучительно борются с тем что «то ли ввёл то ли нет». Для такого даже спец. терминал написали, но там 80x24 и другие ограничения.
— Я: переключусь в окно с FAR. Залогинюсь через netbox. Наберу e.g. «cd /etc/». Подожду пока FAR таки получит локальную копию списка (тут мы с коллегой в ±одинаковых условиях). Дальше — alt→(пошёл набирать название). F4 — подождал — имею локальную копию в редакторе. И понеслась… В конце мне тоже может потребоваться терминал. Но — строго по делу, с минимумом негатива от лагов.

Можно так делать в mc/dolphin/pycharm/wtf_else? Да, с поправкой на некоторые «местные особенности». Но есть нюанс: за использование fish (mc,dolphin — точно через это лезут) — неслабый шанс отхватить от безопасников. Потому то что fish вносит ненужное разнообразие в ФС и список процессов на том конце.

fish на том конце пользуется стандартными средствами типа dd и cat, не очень понятно, какие вопросы у безопасников могут быть к нему особенные. Изящный полезный протокол, ребята из mc молодцы что придумали его, я его в far2l пробую добавить как раз сейчас.

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

Черт его знает, я и на десктопе и на серверах рабочих гоняю. Друг просил вот под AWS собрать. Так что люди вполне в облаках используют, похоже.
хз, работать с файлами из консоли то еще «ебстебство», консоль хорошая для запуска готовых скриптов.
а вот для того что бы разобраться в кучей файликов и придумали файловый менеджер.
я вот до сих пор фаром пользуюсь, он пережил весь путь от вин95 до вин10. где-то есть и тотал командер, но он не удобен, хотя и есть свои фишки.

У нас, к примеру, mc стоит на тестовых стендах (не у заказчика, а на наших собственных), т.к. не вся команда свободно владеет командной строкой. Возможно, могли бы туда накатить far — накатили бы far.

Лично для меня, ФАР находится в нише вместе с Vim например.
Смысл Vim (как и ФАР) — продуктивность и универсальность применения.
Это далеко не всем нужно конечно, но поэтому пример с Крусадером, Дельфинами,
как и с MS Word, — мимо кассы :)
Нашёл в конфиге блокирование Alt, чтобы можно было использовать Alt+F1 и т.п.
Но как теперь пользоваться Alt+Tab?
Я просто поотключал в настройках хоткеев своего MATE использование Alt+F1/F2, а эту штуку не включаю.
А почему, кстати, автор не использует имя файла «far»? Было бы удобней запускать.

Из проблем заметил в 2—6 раз более низкую скорость копирования множества мелких файлов чем в mc. Ещё по Ctrl-O нельзя вернуться в панели когда в консоли что-то запущено.

Но не могу не отметить, что несмотря на 10 лет работы с mc, у FAR хоткеи всё равно удобней. А повышение привелегий вообще киллер-фича. Очень жду релиза.
поменяйте хоткеи, я в этой теме выкладывал конфиг mc с максимально близкими сочетаниями к far
Поиск по alt вместо Ctrl-S разве можно сделать?

Допилить mc, наверное, было бы проще и правильней чем портировать FAR, но как-то не шло. Может при наличии конкурента пойдёт.
у меня на alt-s сделан поиск и в mc и в фар
почему alt-«что угодно» нельзя переопределить это потому что все другие зашитые сочетания полетят. кроме того для консоли нет никакого alt есть esc-последовательность и для русских alt-й и для англ alt-q начало последовательности будет одинаковым а конец последовательности в зависимости от кодировки, для однобайтовой колировки это одно число (в зависимости от того кои или ещё какая разные коды) а для utf-8 придет 2 байта.
Вобщем это крайне сложно перенастраивается.
Ещё по Ctrl-O нельзя вернуться в панели когда в консоли что-то запущено.

Это ж всегда было.

В mc всегда было можно кроме dumb terminals, в FARе уже точно не помню, но вроде тоже.
несмотря на 10 лет работы с mc, у FAR хоткеи всё равно удобней
Да!.. И слёзы счастья по лицу…

Да!
alias far=far2l
А можно как-то перейти во встроенный редактор, заменив в .selected_editor?
Просто панели открываются, а не редактор.

Хм, никто даже не заикнулся про то, что есть doublecmd — более продвинутый far, который тоже кроссплатформенный и имеет все тоже самое и еще кучу ф-ционала в нагрузку

Если речь про doublecmd.sourceforge.io, то где там FAR? Это явное подобие Total Commander.
Ничосси не заикается, я во многих хабрапостах отписывался про него. Просто сегодня другую программу обсуждаем :)
p7zip фактически заброшен :(
Но есть сравнительно живой форк :)
github.com/szcnick/p7zip

Туда патчик приняли, кстати :))
т.е. он нормально с кодировками дружит?
дыа :) ну не хуже винды по крайней мере — логика там абсолютно та же
А ведь наступят времена, когда far2l разовьется дальше, и станет актуальным его запустить на винде.
Очень на то похоже. Под cygwin уже запустили интереса ради :)
а расскажите, пожалуйста, как это сделать.
Спасибо
Буду пробовать.
Я его только что собрал под WSL (Ubuntu 20.04.1 LTS). Теперь могу фаром «винды» заходить в паки Линукса, а фаром линукса ходить по папкам виндовс. Вообще здорово, кажется я с mc наконец перейду на far.

На досуге погоняю его на ноуте — там у меня Linux Mate xfce.
В WSL он и просто так из PPA ставится.
Прикольно, а GUI-версия в WSL ок работает? Там какой-то свой X-сервер идет с этим WSL? Вопрос, может, банальный, но я правда не в курсе.
Вы знаете, вот прямо без каких-либо лишних телодвижений завёлся:
image

X-сервера в комплекте нет, я воспользовался VcXsrv.
Спасибо, я не знал (точнее не пробовал раньше — просто как-то в голову не приходило).
Но и факт сборки замечателен — я ожидал каких-нибудь проблем с зависимостями, но нет, всё взлетело, хотя и с кучей предупреждений.
Ну а почему нет? Обычная убунта же (ну, у меня именно она).
Ну я просто на прошлой неделе игрался с Питоном и TensorFlow (причём мне потребовались специфические версии в силу некоторых причин), и мне как-то удалось довольно легко всё сломать на уровне зависимостей, так что оказалось проще переставить, чем чинить. Но пока мне WSL2 нравится — там всё просто, порог вхождения довольно низок и как замена виртуалки с Линуксом мне подходит. Я за последние лет двадцать много раз делал «подходы» к Линуксу и каждый раз эта была головная боль, а вот теперь на десктопе живёт WSL2 с Убунтой, а на старенький ноут я поставил mate xfce и всё пучком и far — просто подарок, он у меня и под Windows один из основных инструментов.
Понимаете, убунта (или какой другой дистрибутив) в WSL — это действительно реальная убунта, а не какая-то эмуляция. То есть на реальной установке у вас сломалось бы с таким же успехом (и ломается, и на гораздо более простых вещах, система зависимостей там ни к чёрту).
НЛО прилетело и опубликовало эту надпись здесь
На пользовательском уровне она и в WSL1 вполне реальная. А то, что там «под капотом», прикладному софту всё равно.

Но, например, тот же docker — это прикладной или системный софт? Под WSL 1 он, насколько я помню, принципиально не заводится.

НЛО прилетело и опубликовало эту надпись здесь
Всё это уже на ядро сильно завязано.
НЛО прилетело и опубликовало эту надпись здесь
Собрал под 20 ubuntu mate.

В инструкции в зависимостях написано libwxgtk3.0-dev, должно быть libwxgtk3.0-gtk3-dev.
И вот эта ошибка на шаге cmake выглядела как будто все плохо, хотя она всего лишь warning:
CMake Warning at CMakeLists.txt:231 (message):
Python plugin not enabled by default, use -DPYTHON=yes if you really
want it

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

AltGr (правый alt) + F1 (F2, etc) ничего не делает, но текст на плашках с назначение F кнопок пропадает.
Alt+F1, F2, F4, F7, F8, F9… перехватываются системой — вот тут хочется, чтоб без каких-либо настроек far4l их сам перехватывал. Про Alt+F4, правда, большой вопрос — возможно тут стоит сдаться и сделать его выходом из программы.
Клики мыши по плашкам с назначением F кнопок работают, а при нажатом Alt не работают.

Сообщение
Operation requires priviledges elevation
Enter sudo password
Confirm by Enter Cancel by Esc

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

А так я очень доволен.
Спасибо за фидбек! Вам, пожалуй, это в виде тикетов оформить стоит, по одному на проблему :)
Никогда не понимал FAR, видать просто не мое. На windows в свое время использовал Dos Navigator, а потом Far manager 2.x, раза 3-4 пробовал перейти на FAR после очередной восторженной статьи какой же FAR крутой и что его очень сильно не хватает на linux, но каждый раз возвращался обратно.

На linux последние лет 10 использовал mc, который полностью устраивает. На MacOS сейчас так же использую mc и он все так же полностью устраивает. Hotkeys это дело привычки, за пару месяцев после перехода с linux на MacOS в принципе привык

Ну а как еще одна альтернатива mc — конечно пусть будет
*смотрю на заминусованный комментарий* И могу потдвердить что с Dos Navigator на FAR очень тяжело перейти. Сложно даже описать в чем причина, но я как ни пробовал, так и не прижилось. Пришлось поддерживать разработку DN OSP :D Жалко что дожить ему до наших дней, в отличии от FAR, была не судьба.

Но я бы сказал что FAR лучше чем MC. Автору респект за эффорт!

UPD: Оставлю ссылку на этот прекрасный олдскульный сайт здесь, пока он тоже не сгинул как часть истории — www.dnosp.com/e_index.php :D

UPD2: Все не так плохо и оказывается форк NDN живет и обновляется в 2020, и у него тоже есть Linux Port. Hooray! ndn.muxe.com
Перетащите исходники на GitHub, пока не сгинул! Тут народ Turbo Vision даже умудрился оживить, подружить с юникодом и кроссплатформенной сделать, уж DN-то наверняка тоже можно и кому-нибудь когда-нибудь интересно будет :)
А то мало паскалей живых нынче :) Уж под freepascal вполне можно было бы его допилить наверняка.

Есть, вот, например: http://ndn.muxe.com/download/
Но как-то в коммьюнити о нём мало слышно.

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

А вот попытка opensource линукс версию сделать, кстати. Можно подхватить и допилить, если есть интерес.
UPD: Там на базе 1.51 исходников попытка порт сделать, это жесть, конечно (куча досовского ассемблера внутри). Не удивительно, что забуксовало. За основу лучше брать версию посвежее, которая уже под win32 собиралась, это к нынешним реалиям поближе будет.

Вот, собственно. Компилируется и даже можно запустить тетрис))
Ух ты, NDN по ссылке оттуда даже запускается у меня в Mint :) Выглядит странно, конечно, но работает)) ndn.muxe.com/download

Но вообще полузаброшенный статус не удивителен тут: я даже исходников этой ветки пока не смог найти.
Я там посмотрел в исходники. В классическом DN ассемблера очень много :( Причем 16-битного, то есть, малой кровью такое не портируется. В DN/2, кажется, с этим получше, там в коде даже слово Linux встречается. Но под free pascal легко он собираться не хочет (он под мёртвый virtual pascal сделан), а не легко мне лень :) Но если вам интересно повозиться с этим, я могу выложить на github версию, где я смог избавиться по крайней мере от части ошибок компилятора.

Я полагаю, что экосистема плагинов у Фара была богаче. Я тоже когда-то пользовался доснавигатором. Но возможности far для меня в итоге перевесили. Да и со стабильностью у поздних форков DN было как-то не очень, если мне память не изменяет.

Плагины, кстати, сравнительно несложно портируются. Я вот со своими начальными знаниями сей смог портировать editwrap даже.
И могу потдвердить что с Dos Navigator на FAR очень тяжело перейти.
ну не сказал бы, на мс то перешел, а это по сути одно и тоже

Но я бы сказал что FAR лучше чем MC
я не смог найти ни одного преимущества, как некоторые тут писали из преимуществ — самба, не пользуюсь от слова совсем, точно так же и sftp. Запароленные zip, да неплохо, но как часто оно нужно. Хотя вот да, работа с zip в mc ужасна, по F5 копирование ОЧЕНЬ долгое.

Есть ли у FAR какие то киллер фичи по сравнению с МС? Что я понимаю под словом киллер-фича, например, в sublime, как для меня, есть киллер-фича — множественное выделение по ctrl + D и последующее редактирование. Из тех редакторов что я пробовал (wordpad, np++, vscode, atom) — в свое время нигде такого не было, возможно уже добавили. Есть ли что то подобное в FAR по сравнению с мс?
В общем, слушайте, я псих, да, но я таки смог собрать DN на Линуксе!

У Некромансерской версии-то ведь нет исходников, а в тех, что выложены как «DN Open Source Project» — сломано буквально всё. Но у меня получилось их заставить по крайней мере собраться. Путем жесткого вырезания/комментирования некоторого количества кода, и, да, оно вылетает прямо на старте, надо разбираться, почему.

Но оно хотя бы компилируется!

Вот, ловите. Дальше мне пока лень :)
github.com/unxed/dn2l/blob/first_try/README.md

PS: Да, оно собирается только древним Virtual Pascal, под который написано. Прежде, чем пытаться его на какой-нибудь Free Pascal пересадить, наверное, надо заставить работать то, что есть :) Там по ссылочке есть скрипт, который сам раздобывает Virtual Pascal на вебархиве, сам вытаскивает оттуда всё нужное, ну и запускает сборку.

tendium вас эта забава тоже развлечет, возможно :)

UPD: Проверил на хеллоуворлде. Похоже, там VP RTL эту ошибку на старте кидает, то есть, проблема не в DN, а в VP, в исходники VP RTL смотреть надо.
UPD: Ага, собирать надо в vp, а не в vpc, тогда собирается без вылета по 202 ошибке (видимо, какие-то настройки компилятора по умолчанию другие там, не разобрался пока). Правда, всё равно вылетает, но уже хотя бы успев сделать хоть что-то осмысленное :)) А именно — сохранить собственный .ini и сохранить в файл лог случившейся ошибки. Ну, это уже хоть что-то! Я там расписал текущее положение вещей в ридми на гитхабе.
Ух ты, я даже смог эту штуку допилить до состояния, когда она свой интерфейс показать может! Ну, не целиком и бажно, но это уже куда интереснее вылетов с критическими ошибками прямо на старте. Заценить можно здесь: github.com/unxed/dn2l/tree/first_try
И, чтоб два раза не вставать: к wine приделали поддержку изменения размеров консольного окна, а DN под Win32 в wine работает замечательно. Правда, редактор и вьювер там залочены на 866, увы. Ну и вообще это не замена нативному порту, конечно. Но запустить в вайне и погонять из настольгических соображений было прикольно.

А мой эксперимент с нативным портом DN тем временем от стадии «ура, скомпилировалось, только вылетает на старте» дошел до стадии, когда вот такое показывается уже. Не знаю, зачем я это делаю (вряд ли вокруг исходников на паскале сейчас комьюнити собрать можно). Но прикольно же :)

Нашел очередное место, где оно вылетало, и… ура, работает :)
Такс, ну вот, оно более-менее живое и даже в состоянии скопировать рекурсивно папку или отредактировать какой-нибудь конфиг. Для Proof-Of-Concept, пожалуй, достаточно :) Дальше сделать там много чего можно: поотлавливать оставшиеся баги, пересадить на Free Pascal, перевести на Unicode и т.д., но с этим всем есть смысл заморачиваться при востребованности только. Ну или просто для фана, но тут как повезет с настроением уже))



Это огонь! Спасибо за реинкарнацию DN! Смотрю топики в хелп-файлах еще помнят мои правки 20-летней давности :))

image

Как бы этому теперь импульса поддать? :)
Форкнуть, поправить какую-нибудь мелкую фигню, прислать Pull Request :) Я готов здесь в личке на вопросы отвечать в рамках того, что уже про DN понять успел.

Ещё есть тема на форуме fp, можно там высказаться:
freepascal.ru/forum/viewtopic.php?f=10&t=43132

И тред на Лоре (оказался полезным внезапно):
www.linux.org.ru/news/opensource/15971481/page2#comments

О, тут обсуждение на форуме NDN случилось: forums.muxe.com/index.php?/topic/3275-collaboration-on-source-code

Если кто-то, как и я, считает, что кнопочка «форкнуть на гитхабе» это круто, а выпрашивать исходники каждый раз в личной переписке — некруто, предлагаю там высказаться тоже :)
Сейчас напишу. Если бы нашлось 2-3 человека которым интересно патчить, оно может ожить.
Спасибо! Ура :)
А, да, и единственная вещь, которой мне не хватает в far — в линуксовой консоли есть возможность проскролить наверх — или скроллом терминала и колесом мыши, или shift+PgUp / PgDn. Вот в far2l такое хочется.
Там можно нажать F4, получить лог консоли во встроенном редакторе (по ф3 — во вьювере) и скроллить сколько угодно. Только расцветка теряется. Есть идея, как это починить, она поддержана автором, вот тикет github.com/elfmz/far2l/issues/790
за наводку спасибо

Хорошо, но мало... Настоящей длинной консоли всё равно сильно не хватает. Это вот я не поленился, долистал до этого коммента и теперь знаю про F3-F4 в консоли. А до этого был сильно расстроен, что ни увидеть то, что выше экрана, ни даже скопировать с экрана я не могу!

Согласитесь, эта анти-фича просто убивает всё остальное и не зная этот секрет, ты уйдёшь обратно в mc и голую консоль.

F3 и F4 для работы с содержимым консоли не годятся.

А как бы вы эту задачу решали, и чем настоящая консоль отличается от не настоящей?

Там не только F3/F4 есть и другие способы открыть вьювер - например скроллинг мышью во время работы команды, о чем пишется в подсказке при запуске первой команды в сессии:

Что касается копирования из экрана консоли - то оно делается выделением мышью. Выделили кусок мышью, отпустили и все - оно уже в клипборде.

ни даже скопировать с экрана я не могу!

Не знаю как в FAR2L, а в фаре под виндой скопировать кусок экрана можно при помощи Alt-Ins ⇒ выделение при помощи Shift-стрелкиCtrl-Ins.


Согласитесь, эта анти-фича просто убивает всё остальное и не зная этот секрет, ты уйдёшь обратно в mc и голую консоль.

В консоли не зная «секретных» cli-команд тоже очень грустно. Без курения мануалов никуда.

Пользуюсь на маке. В основном для удобной работы с SFTP. Особенно это стало удобно с момента добавления поддержки SSH Agent. Крайне благодарен автору за этот порт. Правда, полностью пересесть пока не получается — одна из проблем — кривое отображение шрифтов, иногда буквы налезают друг на друга или проявляются артефакты.

в mc так то доже есть sftp

Конечно существует. А как на панель вывести список всех моих SFTP-серверов? А еще, если у меня оборвалось соединение, как мне его восстановить? (подсказка: приходится выходить из mc).

Каталоги быстрого доступа C-\
добавляете группу SFTP
в нее добавляете отдельные sftp хосты.

а почему приходится перевыходить?
ctrl-r должен помогать, так то реализацию sftp в mc один хороший человек пилил, но потом он устал, если мы сейчас про sftp а не про Shell-соединение.

Перевыходить, потому что ctrl-r не помогает — до перезапуска mc каталог с sftp показывается пустым.


Каталоги быстрого доступа C-\
добавляете группу SFTP
в нее добавляете отдельные sftp хосты.

Не, ну это совсем не то. Во-первых, панель удобнее. Во-вторых, сходу не упомнишь, в каком там формате надо задавать строчку соединения, если это не делаешь каждый день. В-третьих, а где настройки для конкретного хоста? Что если мне надо задать отдельный ключ для хоста? Это мне надо лезть в мою локальную конфигурацию ssh? В-четвертых, а переключиться в shell subsystem на исполнение удаленных команд выйдет?


Короче, технически всё это есть. Но на практике в mc подключение по sftp построено из костылей с использованием сторонних команд. Да, это, конечно, соответствует юниксовому принципу SRP, но в случае с файловым менеджером я бы это ожидал из коробки или как минимум хорошо интегрированным плагином.

я знаю что это не то, хотел было реализовать в виде панели но так и забросил.
>В-четвертых, а переключиться в shell subsystem на исполнение удаленных команд выйдет?

это я точно запиливал.

Мне вот это выдает:


Cannot execute commands on non-local filesystems
О да, вот это вот command execution on non-local filesystems в NetRocks прям вот целенаправленно пилили как весьма желаемую фичу :)

А вот я попытался, будучи залогиненным на sftp, создать там файл (shift-f4). Сначала выдало ошибку "Failed opening remote file 2 (-31)". А потом и вовсе грохнулось:


                                                                      mc(70857,0x115375dc0) malloc: *** error for object 0x7f8e2dc29030: pointer being freed was not allocated
                                                                       ┌────────────── Error ───────────────┐                                                                 mc(70857,0x115375dc0) malloc: *** set a breakpoint in malloc_error_break to debug                                  │
                                                                       │ Fzsh: abort      mcte file 2 (-31) │
                                                                       │                    %

Причем косяк повторяемый:


  • заходим на sftp
  • жмем shift-f4
  • жмем f2
  • вводим произвольное имя файла
  • падаем

Я ожидаю возможности создать файл прямо на удаленной, но такой возможности, как я понимаю, нет.

Оу, с таким надо вот прям сразу идти сюда и тикет пилить :)
еще раз, есть sftp и есть shell-соединение, они принципиально по разному работают, в shell-соединение происходит общение с удаленным хостом через набор баш скриптов, в sftp реализована поверх библиотеки sftp.
╟────────────────────────╢
║ FTP-соединение... ║
║ Shell-соединение... ║
║ SFTP-соединение... ║

Так я же тупой юзер. Мне бы попроще. Просто открыл своё соединение к sftp и там же на сервере хочу чего-нибудь сделать. А тут мне надо еще разбираться — какой тип соединения выбрать. В фаре (в т.ч. в линуксовом порте) это поддерживается плагином без лишних телодвижений.

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

Разработчики режима Shell-соединения в mc явно руководствовались какими-то логичными мотивами, не позволившими им ограничиться sftp.

Так вообще-то я аргументированно ответил, почему то, как оно есть в mc мне не подходит. Было бы оно юзер-френдли в mc, я бы в сторону far2l не смотрел. Более того, я ведь честно попробовал воспользоваться данной фичей в mc, но он у меня упал :(

еще раз спрошу, вы пункт меню
Shell-соединение выбираете или SFTP-соединение?

Делал по SFTP-соединению. Я не очень понимаю, что такое shell-соединение, поэтому никогда его не использовал. Но сейчас специально попробовал shell. Там по-прежнему нельзя исполнять команды, но появилась возможность создавать файлы (в этом режиме mc не падает).

Shell как-то устойчивее, и шуршит на тонком канале заметно шустрее.
Плюс — работает практически всегда. Есть возможность зайти на хост по ssh — значит, и подключиться через shell можно. Даже если на хосте по каким-то причинам не работает scp/sftp. Очень выручает для разных экзотических хостов, вроде минимального openwrt или винды с cygwin.
Как оно там внутри сделано — не знаю; если бы я таким заморочился — наверное реализовал бы через отправку разных shell-команд вроде ls, cp и т.д., и парсил бы результат.

Как оно там внутри сделано — не знаю; если бы я таким заморочился — наверное реализовал бы через отправку разных shell-команд вроде ls, cp и т.д., и парсил бы результат.

Именно так и сделано

Прикольно, а сама передача файлов как работает?

Я бы через scp делал...

А, такая штука в far2l есть, кстати, называется scp в NetRocks. Как раз scp для файлов и обычные команды для всего остального. Там stat вместо ls только.

Это не "вау", это ужас какой-то. Я так понимаю, для этого всего требуется кастомный ssh-сервер, который понимает, что команда echo FISH:;/bin/sh является запуском FISH-сервера?

А разве обычный, некастомный sshd не может запустить что угодно, в том числе и этот самый FISH?

А каким образом команда echo FISH:;/bin/sh запустит start_fish_server?

ssh user@host "start_fish_server"
?

mercurial как-то ухитряется запускать с помощью ssh себе в роли сервера.

Это вы нормальную команду привели. А mc, если я правильно прочитал тот документ по ссылке, делает вот так:


ssh user@host "echo FISH:;/bin/sh"

Вот я и спрашиваю — нахрена так сделано и как вообще оно работает?

Вот я и спрашиваю


За вами буду ;)
Блин, тут же есть в каментах разработчик из mc, тэгните его! Я-то в far2l коммичу

в том-то и дело, что может и "ужас", но оно просто работает. Причём поверх системных наворотов. Если на целевой хост можно зайти только через пару "трамплинов", да ещё и с аппаратным gnuk-ключом — это всё абстрагируется до "если я могу в консоли сказать ssh host, то могу и в mc подключиться через shell к host" Если нужен пин-код к ключу — он спросит, как обычно.
А вот sftp иногда капризничает. Начиная от невозможности подключиться к некоторым хостам (в основном под виндой), до ощутимых задержек при доступе (листинге) к толстым папкам.

Было бы очень интересно послушать, как ведет себя far2l'овский scp в тех случаях, когда sftp капризничает у вас ;)

Нет не нужен.

cat

ага, класс, я разобрался уже! «а чо, так можно было?»))

сходил по ссылке, не понял за счёт чего fish может быть быстрее sftp при копировании больших файлов

На это не могу ответить. Мне он нужен, чтоб не тащить libssh на роутеры.

А запилите тикет про шрифты. А то странно это: вроде бы никто больше не ловил такого (или все молчат :)

Запилю. Я почему-то жил в уверенности, что это known issue :D

НЛО прилетело и опубликовало эту надпись здесь
Периодически смотрю на прогресс far2l — впечатляет. Конечно, за почти четверть века все mc'шные хоткеи и баги намертво впечатаны в рефлексы, но от багов все же хочется избавиться.

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

Фишки GUI-версии достаточно интересны, но немного непонятно, как достичь того же эффекта, как множество открытых табов в терминале, в большинстве из которых запущен mc. Можно, конечно, сменить WM, но пока не хочется.

Так же, немного смущает отсутствие тем оформления: в mc из имеющихся всегда можно быстро подобрать удачную тему под текущую расцветку терминала. Например Xubuntu-dark хорошо сочетается с modarin256.

Но в любом случае, авторам порта и контрибуторам огромное спасибо. С сегодняшнего дня начну потихоньку переучиваться…
Про тильду не могу сходу сказать, но если вам кажется, что то-то в фар2л сломано, надо просто запульнуть тикет, там или починят или подскажут :)
Просто нет уверенности, что это не баг, а фича. Но если баг, то открою запрос.
А я тоже не соображу сходу. Но даже если фича, ничего страшного, ну объяснят более опытные товарищи, что к чему, и закроют тикет обратно, всего делов :)) Проблема-то будет решена в любом случае.
Неимоверно поздравляю! давно слежу за проектом.
умудрился даже как-то собрать и запустить, где-то в 2017 :)
Поначалу от вашей затеи оптимизма не испытывал.
Казалось что создатели не потянут, и народ не подтянется.
Счастлив признать что был неправ.
Сам тяжелый пользователь ФАРа под виндовс, а надо нырять в Линуксы.
Постараюсь помочь проекту работой, не только работой.
Первый мой вопрос однако, хоть и не знаю насколько уместно будет спрашивать здесь именно здесь.
А что с поддержкой Луа скриптов есть, что планируется?
Я не самый большой фанат Луа, но пришлось втянутся, за неимением тогда выбора.
Теперь укоренился в Луа, поздно переучиваться.
И в целом-остальном, касательно экосистемы в целом,
внедрение Луа очень улучшит взаимообогащение с виндо-ванилью.
есть довольно много очень и очень стоящего наследия оттуда,
не в последню очередь и моего
Пока у автора порта, похоже, ощущение, что это не очень-то кому-то нужно. Вы тикет обязательно запилите с аргументами и конкретными юзкейсами, чтобы он понимал, что это не так :)

да, запилю, пока просто прокомментировал там, надеюсь что тоже содержательно.
Usecases — ну как сказать, считайте Луа способ писать плагины без необходимости компилировать, автоматизировать Фар3, допилить недостающую функциональность.
позволяет с разработчиков сердцевины продукта спихнуть всякие мелочи на пользователя, при разумном балансе это всем на пользу, и даже может быть буквально спасением.

Ближайший аналог — Vim, как пример того зачем «навешивать скриптологию/автоматизацию/кастoмизацию на и так прекрасный продукт».
Далее, я считаю любой серьезный продукт должен оцениваться с точки зрения юзабельности АПИ.
Если продукт сам по себе полезный, найдутся множество способов его использовать и приспосабливать, множество народу желающих это делать

> считайте Луа способ писать плагины без необходимости компилировать, автоматизировать Фар3, допилить недостающую функциональность

Для этого python приделали, по-видимому, предполагая, что в *nix мире это более привычное решение той же задачи :)

Хм… Вообще-то как раз Lua это де-факто стандарт для внедрения возможностей расширения функционала. Я вот навскидку могу сказать, где используется lua. Это прежде всего nginx, apache http server, haproxy, nmap, redis, varnish, neovim, wireshark. А вот где используется Python для написания плагинов, затруднюсь (сразу предлагаю исключить любой софт, написанный на питоне, во избежание разночтений).

Эти все соображения надо вот тут изложить :) Я пока не настолько крут, чтобы самостоятельно сделать плагин для написания плагинов.
смотрите, пока так отвечу
Я не считаю себя вправе педалировать Луа без конкретного плана действий и предложений по существу,
БЕЗ того что я изучил досконально ситуацию на данный момент в ФАР2Л,
и насчет существующих возможностей там питона например.
меня за недостаток доскональности, часто и много и справедливо били ФарГруповцы :)
у них с этим хоть и перебор, но я все же как-то проникся моралью
Пока отмечу, что для Луа можно портировать ранние версии плагина LuaFar4Editor для версии тогдашнего ванильного Фар2.
для простоты, считайте что Луа в ФАР3 это тот же самый, непринципиально чуть перестроенный LuaFar4Editor для ФАР2.
Принципы работы ровно те же, и можно тупо брать этот плагин как он есть, соответствующей версии, и пересаживать в Фар2Л.

Или иными словами :) умоляю что не надо писать плагин для написания плагинов на этом этапе, на этом этапе надо адаптировать старый, добрый, простейший LuaFar4Editor.

2.) Возможно, ровно так же как сделан API wrapping для питона, так же сделать и для Луа.
Но тут важность в совместимости Фар-Луа-АПИ с ФАР3.
хоть для начала может и сделать «абы какой» lua-wrapping?
не знаю, тогда отсеются многие и многое, чего не хотелось бы
Серьезно, здесь elfmz этого может просто не увидеть. Скопируйте в тикет. Это точно не навредит, никто не напрыгивает там за предложения. Я и более неожиданные вещи предлагал там :)

Просто, ну, будет странно, если это запощщу туда я: там и так пол багтрекера моих соображений о будущем far2l))
Ещё прям очень желательно дать ссылку на работающие в Far2 исходники LuaFar4Editor. А то проект на гитхабе грохнут там, похоже.
я уже насохранял все и всех версий что касается Луа,
до чего добрались рученки, а это приблизительно все,
и более чем достаточно :)
Насчет скопировать -оформить предложение, сижу на работе, надо закончить кое-что, работу и все такое,
и наверное следующий мой массированный заход ожидается не раньше выходных :(
Слушайте, я знаю такие разговоры, они всегда заканчиваются «отложить до никогда». Давайте вы прямо сейчас запилите тикет и накидаете туда всё релевантное, что у вас есть, в сыром и не разобранном виде, пометив, что это пока свалка, которую вы собираетесь упорядочить через некоторое время? :) На это уйдет минуты три: скопировать текст из камента выше по треду + файлы прикрепить с исходниками. Зато идея точно не потеряется и не забудется.
Ок, согласен, попробую кинуть как есть, но сейчас мне надо уезжать, работа не сделанна, а меня завтра будут невыспавшегося убивать :) я увлекающаяся натура, если увижу сотрудничество, то от меня дальнейшего шума будет достаточно любому терпеливому :)
Я закинул там удочку, @ефмз пока не реагирует, наверное ему сейчас не до этого?
Немного другая тема, если прокрутить фарш немного назад.
все таки хотелось бы, чтобы @ефмз обьяснил более детально и на конкретных примерах чем код ФАР2 более транспортабелен чем ФАР3?
А то я сейчас перечитал дискуссию:
forum.farmanager.com/viewtopic.php?f=3&t=70&start=30
и показалось что уважаемый @елфмз чрезмерно резво начал кромсать код, и не видно упоминаний каких-то предварительных попыток наладить сотрудничество.
а там предварительная консультация весьма бы не помешала.
были ли закулисные переговоры может?
зачем так было ненавидеть НТФС и «вырезать все включая коменты»?
далее по тексту весьма неуместно упоминается ненависть к никсовым терминалам,
и даже заявление что «делается игрушка чисто для себя»
цитаты почти дословные кстати :)
Вот я вспомнил откуда взялся мой тогдашний пессимизм, из этой дискуссии,
в которой @ДркНс как раз выглядит в более выгодном свете
Не стану играть в игру-угадайку, что там у elfmz в голове, и какие там закулисные переговоры имели или не имели место.

Мне ситуация видится так: разрабы ванили годами делали всё-что-угодно-только-не-самую-нужную-людям-вещь, в итоге пришел вот человек и сделал так, как ему было быстрее и проще.

Кто-то на это обиделся, ну штош теперь.
Про «переговоры».
Закулисных переговоров никаких не было, во всяком случае с моим участием.
На самом деле я изначально начал с 3го фара, потом понял что сделать MVP со вторым будет проще, тупо потому что у него меньше кода. Главные сложности при портировании были не в привязке к winapi (казалось бы), а в более высокоуровневой логике работы с путями и прочее. У 2го фара код был проще тупо потому, что его было меньше. Какие при этом там используются строки — велосипедные или std::string — на фон этих проблем — фактор минимального влияния.
Это не значит что я прям принципиально против 3го фара, это значит что я хотел чтоб заработало побыстрее — потому что самому было нужно. Была надежда что девелоперы подхватят идею и далее пересадят аналогично 3й фар — на тот момент работы там было примерно на месяц. Но оказалось что им это не надо, да и вообще им не все это пришлось не по вкусу. Так что живем как живем.
Про скриптинг и апи.
На самом деле у меня был давшнишний опыт создания софта со скриптами и плагинами. По факту я оказался главным писателем этих скриптов и сделал из этого определенные выводы. Я конечно понимаю, что по закону жанра любая программа должна со временем превращаться в интерпретатор диалекта ЛИСПа, но для себя решил, что удобство пользования полезнее чем превращение в IDE.
А что касается фаровского плагин апи… Мне одинаково не нравится и апи 2й версии и апи 3й версии. Могу проаргументировать, но если коменты почитывают разработчики оригинального фара, они могут обидется :)
И всё же, где исходники-то этого LuaFar4Editor взять? :)
Lua встроен и в версии редактора ru-board scite
bitbucket.org/scite-ru/scite-ru.bitbucket.org/wiki/Home
(собирается в Windows через прилагаемый MinGW)

P.S. Под Ubuntu 18.04 (32) тоже года два назад собирал Far2L и пользуюсь.
Как, понимаю, плагины из Far2/3 портируются на выбор и хотелось бы видеть и плагин Time104.
Пробовал в Far3 запускать демо пример плагина написанного на SPF4, но не совсем он стабильно в нём запускается и есть какие то «ньюансы» при его сборке для «восприятия» системой загрузки плагинов Far. SPF4, кстати, портирован и под Linux.
nginx

а где lua в nginx? есть openresty (и даже у меня используется), а в nginx сейчас js.


apache

вы про mod_lua? так он один из толпы mod_XXX


ИМХО при наличии python lua не будет востребован

а где lua в nginx? есть openresty

Так openresty это по сути и есть nginx, на стероидах, правда, но nginx. И, насколько я помню, изначально lua продвигался именно как замена еще более раннему perl (который таки был частью nginx), хоть и был 3rd party. Это потом js появился. В любом случае, так как динамическое подключение модулей завезли в nginx уже давно, подключить lua модулем в чистый nginx не проблема.


вы про mod_lua? так он один из толпы mod_XXX

А что плохого в том, что он mod_XXX? Если у приложения модульная архитектура, то разработчикам надо LUA неприменно сделать неотделимой частью ядра? Ну, чтоб было труЪ использованием? Кстати, mod_lua, как я понимаю, вполне себе часть проекта, а не 3rd party (как в случае с nginx vs. openresty).


ИМХО при наличии python lua не будет востребован

Ну, это вкусовщина. ИМХО, главная выгода lua в его light-weight embedding'е.

Ну, это вкусовщина. ИМХО, главная выгода lua в его light-weight embedding'е.

именно это я и хотел сказать: если питон уже встроен — то это преимущество уже становится не особо актуальным.

lightweight embedding для меня лично означает прежде всего на одну зависимость в рантайм меньше.

так питон уже есть и от него (как я понимаю) никто не откажется.
рантайм lua+python точно больше, чем рантайм python

и то и другое можно собирать или не собирать по желанию. питон вот сейчас по умолчанию не собирается

Я почему-то решил, что без имеющегося в системе питона, оно работать не будет. Может ошибался, конечно.

На Луа есть весьма серьезный и необходимый в ФАР codebase, богатую историю в ФАРе.
Луа — очень простой в изучении (если попасть на нормальное пособие и не пытаться срезать углы),
размер lua dll runtime это полмегабайта, и в то же время Луа очень способный на многое, даже на все.
Не стоит думать что Питон лучше лишь тем что он популярнее, и он точно не лучше именно для ФАРа.
Мне вообще построение синтаксиса питоновского довольно отвратна, — это бред делать пробелы частью синтаксиса считаю.
Из питона можно обращаться в Луа, из Луа в Питон, это не проблема.
Задача, как я считаю, сохранить преемственность с ванилью (codebase), чтобы оставаться в единой экосистеме.
Форки и разбросанность — это то что убивает OpenSource, и про это еще в 90-е говорилось, и то что доказывается каждый раз.

думаю что надо ОБЯЗАТЕЛьНО унаследовать Луа, а плагины скрипты можно писать хоть на дотнете, хоть на питоне, хоть на Паскале, хоть на Луа,
собственно так как это сейчас вполне возможно и на Виндо-Ванили.
Есть аж целых два варианта достойных питоно-плагино-скриптинга от самих ФарГруповцев, и один очень проработанный давнишний стабильный вариант для Дот.Нет.

Луа — это мост, протянутая рука, и совместная дорога с Виндо-фароводами которыхй все ще большинство кстати, а сделать совместимый такой же АПИ-интерфейс на Луа — ни в каком месте совсем не проблема.

Так получилось что есть Луа, и с этим надо жить :)
И это не само собой получилось кстати,
а потому что некий Зейгерман пахал десятилетиями на ФАР и нормальный АПИ-скриптинг.
Это можно и нужно уважать, Шмуэля я тоже не всегда понимаю,
но он уникум и уникально много делал для ФАРа.
на протяжении десятилетий.
Может быть, если у вас такая сильная мотивация, вы и попробуете начать портировать lua-плагин? Я, когда начинал с far2l иметь дело, си помнил на уровне helloworld'а :) А elfmz охотно на вопросы по внутреннему устройству на гитхабе отвечает, кстати, и даже иногда целыми сниппетами кода помогает.

Если же вопросы будут ну совсем простые, уровня человека, который C/CPP первый раз видит, их мне можно задавать, например.
Как в far2l настроить move up the directory tree on backspace key?
Сложно сказать, у меня из коробки работает. Mint MATE последний. Если у вас не работает, то надо в багтрекер написать об этом, пожалуй, указав, что за система и какая DE. И, если tty версию гоняете, то в какой терминалке.
Ubuntu 20.04.1
GNOME 3.63.3
в дефолтном терминале tty версия также ведёт
Хм, странно, да. Можно в багтрекер пожаловаться, пожалуй
#816
похоже проблема в версии с ppa:far2l-team
Вообще это комбайн конечно, но удобный. Вот допустим, уже снёс ncdu, так как работает F3 на каталогах.
Пользуюсь им штатно и повседневно под MacOS (+iTerm). Собрал шутки ради, а потом втянулся.
Если есть в мире вечные ценности, то это и FAR))

На самом деле конценция двухпанельного файлового менеджера потеряла всякую ценность в момент снятия ограничения 8.3 на имена файлов.


Ranger — единственный адекватный файловый менеджер для адекватных людей (то есть вимеров, говоря другими словами).

конценция двухпанельного файлового менеджера потеряла всякую ценность в момент снятия ограничения 8.3 на имена файлов
Как связаны 8.3 и двухпанельность? Не, я видел такое — во всяких нортон командерах краткие списки были в три колонки, и они как раз помещались в две панели + разделители, но это по-моему удачное совпадение, что не пришлось сильно подгонять интерфейс под стандартное текстовое разрешение.
Но, во-первых, другие режимы отображения вмещают в себя больше, и могут отобразить длинные имена даже в стандартных 80ч25 символах, во-вторых, графоний в виндовсах и юниксах позволяет не ограничиваться этими размерами, а растянуть даже консольные ФМ (не говоря уже о полноценных гуях).
если бы он еще работал под виндой, или, хотя бы, под виндой в цигвине то — да, можно было бы его рассматривать как альтернативу. Но пока нет. К сожалению.
НЛО прилетело и опубликовало эту надпись здесь
Вот и первый пользователь, заинтересованный в бекпортировании far2l обратно на винду :-)
Можно пойти и запилить в far2l такой тикет))

Ну и кстати в WSL far2l ок работает, пишут
правильно не видит, это не баг — это фитча!!!
это trueunixway особенность tar.gz — отдельно сжиматель, отдельно архиватор :)
как будто бы консольные tar и gzip сломаются от существования архиватора, способного воспринимать такие архивы как единое целое ;-)

Не сломаются. tar и без того умеет в tar.gz без привлечения отдельного gzip (с опцией "-z").

Тема в заслуженно в топе, с чем и поздравляю автора и всех почитателей Far Manager (теперь и со вкусом Linux).
Можно ли добиться, чтобы по правой кнопке мыши выделялись файлы?
В GUI-версии у меня из коробки выделяются. В других терминалках не пробовал — наверное, от настроек терминалки зависит. События мышки TTY бэкенд точно обрабатывать умеет.
поставил far2l из PPA на Ubuntu Server 18.04.
Запускаю из kitty (развивающийся форк putty).
Сразу проблемы:

— при запуске «far2l --ee» лезут кракозябры в консоли.
— Нажатие Ctr-Fn эквивалентно нажатию просто Fn.

Второй пункт как-то можно полечить?
P/S/ Из putty по Ctrl-Fn то же самое, а вот --ee вылечился.
Пока я (или кто-нибудь другой) не сделал PR для kitty с нужными для поддержки far2l штуками, вам придется ограничиться моей кастомной сборкой putty, увы. Зато в ней все кнопки будут работать в far2l и крякозябр не будет никаких :) Ещё и клипборд работать будет заодно тоже.
Ну PR PR-ом, а вот «кастомная сборка» kitty с наложенным патчем конечно была бы очень кстати :)
А, такое можно, да. Записал в todo себе. А то для прям вот PRа мой код поддержки экстеншнов сыроват всё ж.
Спасибо, будем ждать!

сделали. глубоко не тестил, но навскидку работает
https://t.me/far2l_ru/1389 тут

Похоже, пакеты rpm сыроваты пока. Надо самому качать исходники, собирать, ставить и подпиливать.
Поделитесь результатом обязательно! :)
А макросы тут есть? Ctrl+. попробовал — не работает.
Одна из вещей, которой мне жутко не хватает в mc — это макросы.
Ctrl+<>, кажется
Хотя может у меня терминалка сочетания не передаёт.
у меня в элементариос макросы работают по «ктрл точка» прекрасно.

пересоберите свежую версию (там пару зависимостей доставить только надо сначала). должно заработать

хех, решил поставить на сервере без графики. подключил реп из ппа
через libwxgtk3 потянуло за собой 850 мб пакетов кода…
на сервере покамест оставлю мс :)
Нужно собирать для себя из исходников без libwxgtk3.
Да, пакеты по умолчанию с GUI собираются. Соберите себе без wx, делов-то :)
А есть ли где-то сборка под архитектуру aarch64? В ubuntu ppa нет пакета.
Возможно, вы будете первым, кто соберет? Поделитесь обязательно ссылочкой на пакет! :)
Хм, на винде у меня обязательный плагин без которого жизни нет — RESearch (даже на FAR3 который нативно поддерживает регекспы, но RESearch всё равно умеет гораздо больше). Как с этим?
Ну, галка «рассматривать строку как регэксп» в поиске есть, но я не тестил это.

Ну этого мало — нужна глобальная замена (по дереву файлов, с маской, конечно, которая тоже может быть глобом а может регекспом), с поддержкой как bakcreference так и всяких \U и \L, нужно переименование файлов с помощью регексп-замен в их именах, нужно при Search-and-replace в тексте всякие расширенные конструкции типа "номер строки" и "номер замены", такое. RESearch очень мощный. Не sed, Конечно, но со своими плюсами. Особенно в плане переименования файлов — без него приходится выкручиваться промежуточными скриптами и списками файлов в текстовых файлах. А все мы знаем как НЕУДОБНО в шелле работать со списками файлов когда в именах есть ПРОБЕЛЫ.

Возможно, вы будете тем, кто портирует RESearch первым? В целом портирование плагинов не сложная штука, у меня вот нужный мне editwrap за вечер портировался.

В любом случае стоит запилить про это тикет :)
Отличные новости. Несмотря на то, что сейчас использую mc, так с ним и не подружился, виндовый far удобней во всём: работа с сетью, подсказки команд и каталогов, ну и, кончено, редактор. Создатели mc вообще в курсе, что во всех редакторах используется ctrl+c и ctrl+v, а не как в древнем norton commander копирование блоками?
Создатели mc пытались сделать так, чтоб через любой древний телетайп работало. Поэтому такие фокусы.
У кого-то на macOS Catalina завелось?

У меня через «brew install yurikoles/yurikoles/far2l --HEAD» не ставится, может где-то есть обычный пакет?
Я пробовал, у меня сначала не завелось, а потом как завелось. Поглядите, может у вас та же проблема.
С первой попытки установки ещё и билдер в Xcode поломался. Решил вот так.
Спасибо, первая ссылка была то что надо, после этого скомпилировалось!

У меня работает. Но я сам собирал.

Для openSUSE собирают тут.
Тут важен не столько факт сборки (не частой), сколько готовые спеки.

Слегка потестировал:
  • Rocks: пока не хватает бо́льшей части фич netbox. Прокси, туннели, shell для scp. При ошибке подключения — нет диагностики.
  • Rocks: При подключении кидает в пользовательский каталог (что логично). Но попробуйте выйти наверх — вывалитесь обратно в rocks (работает «cd /»).
  • Rocks: Нет варианта повысить привилегии для чтения/записи каталога/файла. В «старом» netbox такой фокус возможен через scp+shell=«sudo -i» (как вариант).
  • FAR: Нет макросов (без них не сделать wtf-I-need, e.g. задать на BACKSPACE в панели с файлами «HOME-ENTER»).
  • GUI-терминал в целом рабочий. Но чтобы заменить мой любимый Konsole, не хватает прокрутки.

Не хватает плагинов редактора (чтобы выкинуть виртуалку с FAR-3):
  • Trail space truncater (резать пробелы в конце строк).
  • Editor Word Completion (Без автодополнения что-то сложнее helloWorld писать не реально. А так FAR в небольших проектах комфортнее IDE). Но в тексте статьи есть «editor autocomplete». Я пропустил т.к. там нужно или фильтр править или руками включать. Также, нет перебора из нескольких вариантов дополнения как в EWC было…
  • Функциональности Edit Crutch
  • HexEditor (редко надо, но удобно).
Ctrl+. работает, если специально обученную версию putty взять.
Точно, спасибо! Это я уже́ подзабыл нюансы настройки. После многих лет «просто работы».
  • В «родном» терминале — всё ок.
  • Настройки макросов сохраняются в ".config/far2l/REG/HKU/c/k-Software/k-Far2/k-KeyMacros/k-Shell/"
  • К сожалению, k-Shell не различает режимы «панель» и «терминал». Так что, настроив ту же BackSpace на выход из каталога, мы теряем возможность пользоваться «забоем» в терминале…
Прокси есть (через tsocks), scp есть, диагностика в консоль есть (не помню уже, как точно включается, надо по issues поискать), просто всё это так себе документировано, раз уж вы не смогли найти)) Привилегии — найдите тикет про custom sftp subsystem, это решает проблему. Ну или же можно на сервак far2l поставить и там уже повышать, мы сами так делаем))

Чего это нет макросов? Ctrl+<> работают себе.

Прокрутка по F3/F4, но без цветов. Это скучно, есть идея, как сделать с цветами, идея принята, висит тикет, руки не дошли пока.

Автодополнение есть в редакторе же. Hex редактор — использую biew. Edit Crutch и Tail truncater — запилите тикеты, попросите портировать. Может сработать :)

Спасибо за пакеты, добавил!
Прокрутка по F3/F4, но без цветов.

По F4 под WX-консолью — с цветами, только что проверил.

Прокси есть (через tsocks)

В TUI/хэлпе не нашёл. Возможно, через секретный параметр? Или надо самому городить «ssh -L» и т.д.? Но тогда — не считается.

По SCP — повторюсь, нужна (как минимум) возможность выставить кастомный шелл. В общем случае это команда, запускаемая на «той стороне». Примерный аналог:
ssh user@server.uri 'sudo -i'

Неплохо также было бы реализовать sudo-доступ к ключам из привилегированного каталога. Раз уж он есть для операций из панели.
Ну и всякие мелочи типа keepAlive. FAR+netbox именно тем и удобны, что всё это есть. (Кроме уродливой работы с ключами. Но вот тут-то far2l и подъехал!).

Автодополнение есть в редакторе же.

Есть. Но по умолчанию выключено и я не понял как включить «для всех».

Макросы — да, меня выше поправили. Но (пока?) нет вот этой фичи из FAR-3:
К сожалению, k-Shell не различает режимы «панель» и «терминал». Так что, настроив ту же BackSpace на выход из каталога, мы теряем возможность пользоваться «забоем» в терминале…
Прокси, туннели, shell для scp

Как уже написали, это сделано через tsocks, но включается через общую конфигурацию плагина — F9 -> Ctrl+U -> NetRocks options. И, да, придется править конфиг tsocks :)

Rocks: При подключении кидает в пользовательский каталог (что логично). Но попробуйте выйти наверх — вывалитесь обратно в rocks (работает «cd /»)

Если в настройках подключения указать Working directory вместо пустой — полный путь для изначального подключения, типа /home/user — то будет работать сразу так как вам хочется, без cd /

По SCP — повторюсь, нужна (как минимум) возможность выставить кастомный шелл. В общем случае это команда, запускаемая на «той стороне»

Для SCP пока такой возможности нету. Но если сервер — OpenSSH то можно использовать SFTP а не SCP, — в нем возможность повышения привилегий для беспарольного sudoer'а есть: Protocol options — Custom subsystem request/exec: sudo /usr/lib/openssh/sftp-server
SFTP вообще если честно более предпочтительный вариант, SCP — не более чем протокол на случай отсутствия SFTP.

там нужно или фильтр править

Ну да. Если хочется чтоб автокомплит автоматически включался для всех файлов — в фильтре просто пишете * и все.

e.g. задать на BACKSPACE в панели с файлами «HOME-ENTER»

FYI: Ctrl+PgUp выходит в parent dir безо всяких макросов.
Спасибо Вам за возможность использования любимого файлового менеджера на Linux.
Custom subsystem request/exec: sudo /usr/lib/openssh/sftp-server

Настраивается через небольшой хак (это — баг). Из TUI включается только при авторизации по ключу. Потом можно выключить. В ".config/far2l/NetRocks/sites.cfg" в итоге должно появиться вот это:
Options_sftp=CustomSubsystem:sudo\_/usr/lib/sftp-server … UseCustomSubsystem:1

А так — да, спасибо. Тут уже́ следствие косности моего мышления: netbox так не умел.

Ещё недоделки netRocks:
  • Не полностью работает функциональность копировать/клонировать/переименовать. Работает только F5/F6 между папками внутри плагина. Как минимум, ожидаю что будет работать «shift+F5».
  • Точно хочется опцию «сохранять последний каталог».


Если хочется чтоб автокомплит автоматически включался для всех файлов — в фильтре просто пишете * и все.

Спасибо, работает. Надо было лезть в «Параметры внешних модулей» а не «Настройки автозавершения».

FYI: Ctrl+PgUp выходит в parent dir безо всяких макросов.

Да. Но требует две руки (правый Ctrl не всегда есть). Таки спасибо, переписал пока макрос на менее разрушительный вариант.

Попробую не полениться и на досуге накидать тикетов. Очень уж мне far2l понравился.
Переименовывать можно по F6 если в окне редактирования имени удалить путь. Причем при переименовывании работают шаблоны (то есть если написать *.txt — то просто поменяется расширение файла). Но правда есть косячок, что если в пассивной панели открыт другой нетрокс то не работает. Руки не доходят дофиксить.
Предвидя вопрос, а почему именно так? А в старом фтп оно так работало…
Shift+F5 у меня в виндовом фаре/нетбоксе виснет намертво почему-то. Я так понимаю это предположительно должно приводить к исполнению команды cp -r на сервере? Совсем уж специфическая штука выходит, может лучше так и писать- cp -r src dst?:)
Всегда удивляла позиция сторонников МС, не признающих иное…
Например мне приходится работать как в win, так и в linux — и пользоваться двумя FM с разным функционалом, как то не очень.

Например, в Астре, вызывало не раз путаницу:
Нажмем в МС ctrl+o (скрыть панели), введем команды.
Далее, вернем панели (ctrl+o) и повторим команды (введенные ранее, из истории) — не тут то было, их нет.
Проблема желания использовать одни хоткеи в разных операционках — невероятно важная, согласен. При этом давайте постараемся уважать труд разработчиков mc тоже — благодаря им у нас в принципе был консольный двухпанельник все эти годы, и для многих вполне удобный. А могло и вовсе не быть никакого.

In 1991 or 1992, I wrote a curses-based file manager for Unix, a clone of the DOS Norton Commander.


Unlike the Norton Commander, curses, xterms and Linux did not support the mouse. So I called my file manager "The MouseLess Commander".


Linux at that time was a cauldron of hot ideas. And Alessandro Rubini created a library for console applications to get mouse support on Linux. We worked to add mouse support to the MouseLess Commander and by the end of this exercise we renamed the file manager to "The MouseLess Commander With Mouse Support".


Somehow I was talked into changing the name of the Mouseless Commander with Mouse Support. Since I was pretty bad at naming, we organized a vote on the mailing list and eventually the current name "Midnight Commander" was picked.


I miss the previous name.


© мигель де иказа (автор mc)

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

В мс есть консоль, это консоль и есть ком строка mc из нее в консоль попадают команды они запоминаются в истории. Если вы в консоли чтото выполняете то это не попадет в историю комстроки мц. Это логично.


Я ежедневно пользуюсь и far и mc. Неудобств не испытываю, часть хоткеев в фар натроил так же как в мц, часть хоткеев мц настроил такими же как в фар.
Не путаюсь. Настроение хорошее.

Пользуюсь 3-й день и тем и другим — в far'e путаю хоткеи постоянно (со временем, конечно, пройдет).

GUI-версия работает отлично и содержит, насколько можно судить, полноценный эмулятор терминала. К сожалению, не поддерживает режим 256 цветов.

Если бы GUI-версия имела возможность работы со вкладками по типу xfce4-терминала, то она стала бы самым полноценным терминалом со встроенным far'ом.

И еще, возможно плохо искал, но не нашел:
  • возможности аналогичной mc'шной «pause after run — always», когда появление панелей после завершения команды выполненной в консоли откладывается до нажатия любой клавиши;
  • аналога «Directory hotlist» (Ctrl-\) — Ctrl-Alt-цифра это что-то похожее, но не то.

> возможности аналогичной mc'шной «pause after run — always», когда появление панелей после завершения команды выполненной в консоли откладывается до нажатия любой клавиши;

Вот это прям очень легко добавить, запилите тикет!
Про 256 цветов и вкладки тоже, кстати) Хотя там немножко сложнее уже.
тоже «за вкладки» прошу. Пожаалуйста.
ну здесь-то мало смысла просить (или надо хотя бы elfmz тэгать

тикет нужен :)
— Хорошая идея, самому не хватало. Сделал
— Alt+F12 тоже не то?
Хорошая идея, самому не хватало. Сделал

Спасибо!

Alt+F12 тоже не то?

Нет, это просто история, а в mc перманентный список. Можно даже простой список без групп, т.к. реально в нем до 30-40 отсортированных по нужности закладок.
Ну на данный момент, нечто такое можно прикостылить в alt+F1/Alt+F2 — путем создания файла ~/.config/far2l/favorites со списком директорий и описаний, разделенных табом, к примеру такое содержимое:
/usr/include &Includes
/home/user/projects &Projects

Между путем и именем повторюсь — табы. Амперсанд в имени создает хоткей. Можно делать разделитель — в этом случае вместо пути надо дефис поставить.
ЗЫ недокументировано потому что надеюсь сделать это конфигурябельным через UI, но как обычно руки не доходят
Вполне устраивает — с хоткеями все вообще замечательно.
В данный момент я пользуюсь FAR3 через CrossOver.

Развернул FAR2L на macOS. Для меня пока что неприемлимым моментом оказалось то, что NetRocks не запоминает путь на FTP, на котором я был в последний раз — всегда открывает с корня. Да, можно вписать вручную путь в настройки, но удобство не то.

Ну и меньшая проблема — шорткаты для директорий через правый Ctrl+цифра не работают, только через Ctrl+Alt+цифра. Идеально бы было через левый Option+цифра.

А так — очень круто, давно ждал развития FAR на Маках. Надеюсь, когда-то настанет момент, что можно будет скачать обычный установочный .dmg и перетащить мышкой себе в программы ;-)
Вот про Ctrl+цифры на маках: github.com/elfmz/far2l/pull/748

Про последний путь в NetRocks надо бы вам тикет запилить :)
Подкину ещё вопросов по поводу netRocks. Пока сюда.
  1. Драматически низкая (200…400 кБ/с) скорость чтения/записи. Даже при больших блоках. NetBox имел аналогичную проблему, но там упиралось примерно в 1МБ/с. От размера блока почти не зависит: прокачка от 300к на дефолтном 32к до 400к при «выкручивании» в 128к. (Полагаю, надо подглядеть как это сделано в ssh/rsync.)
  2. «Модальный» редактор (но сохранение работает напрямую, здесь ок).
  3. (Feature request.) Возможность задать «консистентный» режим заливки/редактирования. Это когда сначала закачивается во временный файл а потом его переименуют. (На будущее, можно натащить функциональности из rsync или вообще перелинковаться с ним.)
Эт надо elfmz тэгать или в багтрекер писать сразу :)
Насчет скорости — тут как обычно у программиста все работает. Ну я в смысле что у меня на 100сбит/гигабите скорости соответствующие ширине канала.
Так что надо локализовывать область поиска. Для начала — какая сеть, какой протокол и в какую сторону качается файл (разница есть между прочим)?

А mc и сделан для тех, кто привык к far. Может быть лучшее, из двуханельников в Win. И я им там пользуюсь, как аквалангом. А в консоли он мне не нужен, как и mc. Есть же vifm, i3. А far, ненужный как mc, только лучше mc и эстетически красивее mc пусть тоже будет!

Вторая жизнь Far! Спасибо, собрал на Mac. Тот самый вкус!.. Но почему-то собрался netRocks без поддержки smb и nfs. Подскажите, что я упустил?
Пакетов нужных в системе не оказалось.
brew install libnfs
и, наверное,
brew install samba
(или как там libsmb у вас ставится, я не знаю точно))
НЛО прилетело и опубликовало эту надпись здесь
Я человек простой: вижу фар на линухе — ставлю лайк )
Спасибо огромное разработчикам.

Я человек ещё проще: вижу фар на линухе — ставлю, наконец, линух.

После прочтения новостей об очередном грандиозном обновлении Windows это выглядит вполне логично.

По счастью, Windows 7 уже давно не обновляется.

После линуксоизации всех компов в хозяйстве и окреснтостях единстенное, что тянуло «назат в Окна» остался ТоталКоммандер…
… и вот случилось чудо ( не прошло и 10 лет !) — нашёл то что так долго оне хватало DoubleCommander! Far хорош, но "… любимую не отдают! (С)"

Пруф! image

тык а под centos то нету, только под 8ку… а говорите — все…
По предложению коллеги сделал чатик в телеграме для желающих вот t.me/far2l_ru
НЛО прилетело и опубликовало эту надпись здесь
Уточненьице: скоро весь «псевдо реестр» выпилят, и будут настройки лежать в обычных .ini файлах. Все инструкции, рассчитанные на старый формат хранения настроек, немножко устареют.
Движняк чую. Вы там случаем не замышляете преобразование Far в самодостаточную ОС? Долой оковы закостенелых осей, и всё такое? FarOS — звучит неплохо.
Никогда не знаешь наверняка, чем закончится написание очередного эмулятора терминала :)

Реестр, кстати, таки выпилили.
О раз терминал, значит можно добавлять поддержку сикселей?
Подскажите пожалуйста.
Есть Ubuntu, захожу на неё с винды через Putty. Как мне в far2l сделать повторный поиск строки в файле (Shift + F7)? В линуксе всё работает, а в связке Putty — Linux — нет :(
НЛО прилетело и опубликовало эту надпись здесь
Добавляйтесь в чатик t.me/far2l_ru, там несколько маководов сидит, обычно общими усилиями у всех всё заводится :)
в итоге сделал себе раскраску в духе Monokai, ну и выложил для всех, конечно. У нас opensource ведь.
Вы не могли бы сделать эту тему в формате .farconfig, пожалуйста?
думал, сам, но посмотрел содержимое default_dark.tar.gz и ничего не понял
Сомневаюсь, что этот формат поддерживается в far2l. Там сейчас активно идет перепилка формата хранения настроек, вот когда закончится — и формат темы поменяю. А пока можно посмотреть там install.sh, в котором в целом написано, что куда кладется.

Было бы круто под Oracle Linux собрать. Но пока не хватает элементарных каких-то знаний.
Ошибку вижу. То что простая — понимаю. А вот что делать дальше — без понятия.
В Linux только докерами пользовался всегда, поэтому такое — просто тарабарщина:


CMake Error at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
Could NOT find Uchardet (missing: UCHARDET_LIBRARY UCHARDET_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindUchardet.cmake:16 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
far2l/CMakeLists.txt:156 (find_package)


— Configuring incomplete, errors occurred!


Может подскажете где взять сборку готовую под Oracle Linux?

Похоже не может найти либу uchardet. Под убунтой пакет называется libuchardet-dev.
Под Oracle Linux наверно uchardet-devel.

Да, точно, спасибо. На шаг дальше продвинулся.
Потом с spdlog-devel все так же повторилось.
Теперь собираться начинает, но на 32% все равно прерывается с ошибкой.


/home/opc/far2l/colorer/src/Colorer-library/src/colorer/common/Colorer.cpp:1:31: fatal error: xercesc/dom/DOM.hpp: No such file or directory


include <xercesc/dom/DOM.hpp>

compilation terminated.


Видимо "методом тыка" не собрать. Но в любом случае за помощь спасибо большое.

А теперь вам нужна либа xerces-c (arch) или libxerces-c-dev (debian). Как в Oracle — не знаю.

Да, есть такая, xerces-c поставил, но ничего не изменилось, к сожалению.
Far2l собрал с игнором ошибок make -j4 -i
Вроде работает, но т.к. при сборке ошибок много, надо будет разбираться еще.


Спасибо за помощь ;)

Вообще, в пакетных менеджерах есть поиск пакетов по имени файлов. Возможно, вам надо было -dev версию найти и установить.

Точно, вы правы, все получилось, хотя и собиралось почти час, но зато "я снова дома". MC как-то не по душе был всегда поэтому через bash было как-то проще, а вот FAR я практически с момента его написания использовал. Супер.


Спасибо еще раз ;).

А скиньте сюда итоговую инструкцию и готовый пакет, пожалуйста! Другим пригодится :)

github.com/elfmz/far2l/issues/647

spdlog из зависимостей убран! Если у вас раньше не собирался colorer, то сейчас должен собраться.

Можно ли будет собрать что-то вроде far2l-nox - чтобы поставить только консольную версия и не тащить на сервер ошметки десктопа?

Да, это одна из штатных сборочных опций. В readme всё есть.

@unxed
>>сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

А вот как бы узнать - что именно исправлено?
Чтобы перенести изменения в kitty(https://github.com/cyd01/KiTTY) - уж больно удобна эта модификация.

О, если бы кто-то перенёс, это был бы огонь вообще! Там не исправлено, там добавлен кусок. Я готов комментировать добавленный код в телеграме https://t.me/unxed. Если в двух словах: у far2l есть свои собственные эскейп-последовательности, позволяющие передавать более подробную информацию о состоянии клавиатуры, чем стандартные. И они же позволяют передавать содержание буфера обмена.

Поддержка этих последовательностей лежит в модифицированной putty в файлах windows.c и terminal.c, ищите там по слову far2l — им помечены соответствующие куски кода.

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

Понадобится ещё библиотека libb64 для кодирования-декодирования base64, в эскейп последователностях far2l именно в base64 все данные закодированы. Она там в комплекте у меня на гитхабе.

Вот тикет, где я начинал документировать расширения:
https://github.com/cyd01/KiTTY/issues/74

А вот файл, где сегодня появилась первая документация на протокол:
https://github.com/elfmz/far2l/blob/master/WinPort/FarTTY.h

Сорри за некрофилию, я на днях буквально сделал труъ Monokai для Far Manager, причем даже в 16 цветах (или RGB, по выбору): https://github.com/joric/colorer-schemes

Ого, здорово! Кстати, поддержку RGB тем в far2l как раз недавно добавили!

Попросил автора far2l вашу тему импортировать, а там проблемки возникли. Вы не могли бы ответить ему на вопрос вот здесь, пожалуйста?
https://github.com/elfmz/far2l/issues/1396#issuecomment-1309498343

…символы рисования рамок показывались раздражающим «пунктиром».

У нас долго не получалось найти причину или подобрать настройки рендеринга, исправляющие этот бесячий баг…

Причина в том, что оригинальный (работающий прямо на железе) DOS имеет один пиксел пропусков между знакоместами. Но если засвечен крайний справа или снизу пиксел в знакоместе, то он автоматически клонируется в эту область. В итоге линии псевдографики пролонгируются, а аппаратные шрифты должны быть построены так, чтобы не затрагивать край знакоместа.

А DOS-то тут при чём, как и аппаратные шрифты?

При том, что классический рендеринг шрифтов TrueType, в котором нет такой фичи, как в DOS была, как раз и рождает дырки между символами псевдографики. В GNome Terminal / Konsole сделаны workaround'ы с рендерингом символов псевдографики вручную, а не из шрифтов, чтобы победить это. В far2l в итоге сделали так же.

Публикации