Комментарии 505
Если запускать графическую версию — да, все, ВООБЩЕ ВСЕ, прямо как в родном. Если консольную — есть небольшие ограничения, сходу могу вспомнить только одно, 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 регистрация»?

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

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

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

(я, если что, работаю в частном фонде, живущем на донейты, и тему эту знаю, можно сказать, профессионально)
Не смог найти инструкции по запуску 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 тоже собрать можно, просто по умолчанию не включён :)
сократить размер бинарника для всяких роутеров

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

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

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

PS: Как перекрасить синие панели в модный серый, в статье тоже есть. И, да, проблема синего на консоли на самом деле многих парит.
а многих и не парит, меня например, и синий нравится…
>буфер обмена через 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», чтоб два раза нажимать не надо было.
Я примерно прав, так как использую оба, и больше 10 лет (считать лень, может и 20, не помню когда фар вышел. Если что — Volkov'а ещё на одной дискетке запускал. Если вы вообще в курсе что это.)

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

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

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

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

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

С ходу — эскалация привелегий, чего в mc жутко не хватает, и о чём долго просят. Из за чего обычно бывает «sudo mc».
Очень часто бывает, что файл уже открыт, отредактирован, и надо сохранить, и тут — опаньки, прав не хватает.
Ну и повышение прав также нужно для разных операций с фалами, не только редактирования.
да самого бесит ) делаю
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 изначально решили, что командер должен работать на любой системе, даже на тостере.
В результате они сильно ограничены в имплементации фич.
А мне не надо, чтобы оно работало на тостере. Мне надо, чтобы работало на моем достаточно стандартном компе, но чтоб все было удобно.
И вот эту задача проект решает на все сто.
С точки зрения админа, видимо, дело привычки больше. А вот с точки зрения прогера-автоматизатора прям очень лучше. Фар с колорером до сих пор закрывает большую часть нужд по допиливанию существующего софта. Не все удобно делать на всяких навороченных ИДЕшках особенно когда все разбросано по разным серверам абы как.
запустил 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. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась.


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

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

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

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

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

у меня Xterm настроен так чтобы esc последовательность генерировалась для ctrl+'+'
как этой последовательности научить far2lc?
лучшего эмул. терминала чем 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

Всё же собирать самому проекты на стадии альфы, если не являешься программистом, очень сложно. Потому я и предпочитаю пакеты.
debian 9 stretch

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

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

Не сохраняет, вроде бы, никуда, если специально не попросить.
В инструкции по сборке j4 написано — так и запускаю.
Запустил с 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

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

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

Ну мало ли чего там придумают. Вон тут ныли некоторое время назад, что в линуксе нет молодых разработчиков из-за того, что все по почте общаются, а в инстраграме и тиктаке не хотят разработку ядра обсуждать. :)
В общем, я не знаю, что именно помогло, но когда последний раз запустил сборку без 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: ок, тикет я сам закрыл уже
ну а как дебажить, если не репродьюсится?))

у меня вот дебиан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
Аварийное завершение.


Спасибо! Это прекрасно, что есть 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
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, а он редиска накормил обещаниями и ничего не сделал, но то такое — я допускал риск :)

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

В виме сделали асинхронные каналы для внешних утилит (что на самом деле не вау, а ВАУ ВАУ ВАУ), ну и недавно вот, например, добавили некостыльные попапы.

Ждем от вас поста про ВАУ ВАУ ВАУ! А то как же так, где-то запилили что-то классное, «а пацаны-то и не в курсе» :))

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

То, что там внутри все стало лучше/быстрее/сильнее/выше — несомненно, но речь же про пользователя, а пользователь, как правило, валенок.
Я вот в виме описания к коммитам пишу (потому что он по умолчанию), как каналы улучшают мой workflow?

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


Онлайн-проверка синтаксиса в виме 5-7 лет назад — боль, страдание и подвисания. Сейчас же я просто пишу код, а ale/idris-vim/agda-vim там просто в фоне что-то проверяет и добавляет маркеры куда надо.

По 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+ лайков.

Для обретения дзена советую почитать исходники ядра линукса, ну и за компанию 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 поставить и просто посмотреть, что будет, ради интереса))
Обязательно поблагодарите основного разработчика, elfmz. Сделать это можно в каком-нибудь тикете на гитхабе, например, в этом.

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

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

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

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

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

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

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

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

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

Ну зачем вы так, здесь прямо в каментах есть человек, который коммитит туда :)
А это кто? :) хочу немного поругаться за отлуп 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 вносит ненужное разнообразие в ФС и список процессов на том конце.

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

Черт его знает, я и на десктопе и на серверах рабочих гоняю. Друг просил вот под 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 хоткеи всё равно удобней
Да!.. И слёзы счастья по лицу…

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

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

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

открываю такой


p7zip_oemcp_ZipItem.cpp.patch

а там


sizeof(lc_to_cp_table) / sizeof(char *);

У p7zip кодовая база живет на с++98?

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

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

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

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

Ну, для меня это так, но на это мне многие пишут про nmap или docker или FUSE или ещё чего-нибудь.
Ну вот на таких моментах и вскрывается, что убунта не настоящая ))
Кстати, nmap и FUSE вполне себе программы пользовательского режима, просто опираются на соответствующие механизмы ядра, которые оказалось слишком трудно реализовать.
Собрал под 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-то наверняка тоже можно и кому-нибудь когда-нибудь интересно будет :)