Comments 585
А куда донат заносить?
А, да, если 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 что из него могло бы выйти — не знаю
Я эту штуку первый раз вижу, и выглядит она немного странно. Собирать людям, их не спрашивая? Ну такое. А это точно не скам вообще?
> на донатах еще не кто не разбогател это 100%
Во-первых, разбогатели (но это в основном это всякие хайповые однодневные истории, которые скорее плохой пример). Во-вторых, вести оперативную деятельность на донейты вполне реально, вон, на Горпроекты Каца и Варламова посмотрите :)) Тут недавно пост выходил про лучшую онлайн карту ДТП страны, это при их поддержке проект, между прочим.
А на хейтеров никогда ориентироваться нельзя, им угодить невозможно, зато можно потратить зря кучу времени и сил, демотивироваться, забросить дело. Представьте, что я этот пост писал бы не для тех, кто far2l пользуется, а пытаясь угодить тем, кто его ненавидит? Ну вот этим вот «ненужно, есть mc» и «учите консоль лучше, дурачки». Нет, я на таких даже внимание не обращаю, а когда приходят — отшучиваюсь.
Обращать внимание, наоборот, надо на добросовестных сторонников, которые тестят, код шлют, или вот денег задонейтить готовы. Все три варианта помощи по-своему хороши, глупо отрицать один из них только потому что кто-то нос воротить будет: желающие нос воротить и так всегда найдутся, обращать внимания на таких и вовсе не надо.
Ну вот этим вот «ненужно, есть mc»
Почему ненужно, нужно — будет больше альтернатив емаксу.
Представьте, что я этот пост писал бы не для тех, кто far2l пользуется, а пытаясь угодить тем, кто его ненавидит?
Надо будет затестить far2l дома. В виндовсе мне всегда нравился ТоталКомандер, но его не везде можно использовать и иногда приходилось довольствоваться ФАРом.
Надо будет затестить far2l дома. В виндовсе мне всегда нравился ТоталКомандер, но его не везде можно использовать и иногда приходилось довольствоваться ФАРом.
Чей-то непонятно.
Если вы только собираетесь попробовать far2l, то под Linux вы ФАР еще не гоняли.
Ну а если под Винду то везде, где можно ФАР, то там и Тотал можно тоже.
Ну а если под Винду то везде, где можно ФАР, то там и Тотал можно тоже.
Имелось в виду спорность использования условно-бесплатного Тотала в коммерческих целях.
Имелось в виду спорность использования условно-бесплатного Тотала в коммерческих целях.
А вы FAR лицензировали с указанием «xUSSR регистрация»?
Так что чтоб не было обидок с одной стороны (я задонатил 100500 шекелей а они так и не сподобились
Потому что есть работа, есть семья с малым ребенком, стройка дома и хобби. Надо разделять:)
А то, что донейт не подразумевает какой-то ответственности в виде реализации конкретных фич, это можно в вежливой и ироничной форме прописать на страничке с донейтами. Кого-то отпугнёт (и чёрт с ними), других — нет.
(я, если что, работаю в частном фонде, живущем на донейты, и тему эту знаю, можно сказать, профессионально)
Не знаю, потянет ли на issue, поэтому спрошу здесь:
Как мне правильно сделать "патч", чтоб только что собранный из исходников far2l был сразу с моими цветами (серенький, как Dos Navigator, "если вы понимаете о чём я")?
Ну и ещё пара мелких правок, типа кодировки создаваемых файлов всегда UTF-8.
Т.е. я делаю форк, постоянно его rebase-ю, и собираю.
Но я в C++ коде не силён, как узнать - где хранятся цвета по умолчанию?
В ссылке выше страница с описанием бага 276 с массой текста.
github.com/elfmz/far2l/issues/276
Понимаю, что far2l в стадии alpha, но чтоб пользователи дали feedback, нужны простые инструкции по запуску.
Ссылка на 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 работает тоже.
Зачем? Это ж не винда. Можно просто bash alias для бинарника сделать.
А можно скопировать результат установки в /opt, сделать симлинк на бинарник и положить в одну из директорий из PATH, какую именно — зависит от дистрибутива.
Действительно, в установочном скрипте имеются строчки:
ln -sf ../../bin/far2l "$pkgdir"/usr/lib/far2l/far2l_askpass
ln -sf ../../bin/far2l "$pkgdir"/usr/lib/far2l/far2l_sudoapp
Но больше никаких особенностей нет.
Лет несколько назад снова прямо очень захотелось Far для Linux, и — о чудо — читаю в новостях, свершилось. Однако новость оказалась датирована первым апреля.
Но есть всё-таки справедливость, правое дело торжествует героическими стараниями великолепных elfmz и unxed, многих лет и процветания им и иже с ними.
если целый день смотреть в синий цвет, становится как-то не по себеЭто с непривычки, зато потом теплее.
(и прямо чувствуешь, как отрастает борода и свитер с оленями)
А от нескушных обоев и до альтернативных шорткатов недалече.
Да и плагин для написания плагинов (на Python!) ускользнёт же в исконный Far. Ну и пусть его.
Зато теперь и в консоли, и в putty, (и в wsl), и всё синхронизируется.
Впору задуматься о вытеснении всех прочих способов сетевого взаимодействия Far'ом и о водворении Far в Dom0.
Интересно, в 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'а можно будет пользоваться для передачи
Far, кстати, обладает удобным способом работы с ресурсами ftp из командной строки (в стандартном FTP, не NetBox, кажется его можно было включить на версии 3).
Всяческих успехов проекту и прокачки скилов персоналиям.
200 это из Турбо Паскаля, а заопенсорсили Borland сишную Turbo Vision, о ней и речь тут (ну, о форке, в который добавили юникод и кроссплатформенность). Но да, вектор вы поняли правильно, это те самые милые сердцу ностальгические досовские TUI.
farftp в far2l тоже собрать можно, просто по умолчанию не включён :)
https://github.com/magiblot/turbo/pull/37
Копирование из turbo в far2l, из которого turbo запущен (будет работать в свежих версиях far2l).
https://github.com/elfmz/far2l/issues/1438
Как собрать для *wrt (всё ещё есть некоторые проблемки, но базовые функции файлового менеджера и редактора уже работают).
сократить размер бинарника для всяких роутеров
Что-то мне кажется, что проще ставить полноценный far[2l] на клиент, а на роутер заходить как на сетевой диск.
Я сам пользователь и far2l, и turbo (помогаю автору тестировать собирание сборок).
Удалось уже их скрестить?
Вообще если нужна какая-то посильная помощь — буду рад присоединиться!
На базовом уровне удалось :) Вот эта штука даст запись в буфер фара из turbo. А вставка и так работает через bracketed paste.
https://github.com/magiblot/turbo/pull/37
Надо теперь чтоб в мастер автор вмержил.
Поэтому лучше смотреть не с ракурса «лучше-хуже», а с ракурса «а вот альтернатива какая есть, глядите!». Как GNOME/KDE, кока и пепси.
Из «фишек», которых в mc не хватает лично мне, могу навскидку назвать, например, такие вот две: буфер обмена через ssh и корректная работа с русскими буквами в OEM .zip архивах.
По последнему пункту тикет в mc я запульнул, разумеется. Они отвечают, что все проблемы в апстриме, unzip/p7zip. Но unzip/p7zip в дистрибутивах не починят примерно никогда, судя по всему. Мэйнтейнер p7zip из Дебиана пока не ответил на мой email, по крайней мере.
Про буфер обмена очень интересно, с удовольствием расскажу. Как это работает в mc? Он стучится в локальные иксы и спрашивает «а дайте мне буфер, пожалуйста!». Естественно, на сервере, куда вы по ssh зашли, и где никаких локальных иксов нет, такое из коробки работать не будет.
В far2l механика другая. 1) Запускаем графический far2l (мы же на десктопе иксовом работаем, раз нам клипбоард понадобился, верно?) 2) В нём делаем «ssh example.com» 3) На example.com запускаем местный far2l 4) Удаленный текстовой far2l и локальный графический far2l договариваются между собой о доступе к буферу обмена и клавиатуре с помощью хитрых специальных escape-последовательностей 5) в итоге вы пользуетесь удаленным far2l так же, как будто бы он работал на вашей родной системе в графическом режиме — с клипбордом и расширенной поддержкой сочетаний клавиш.
Разумеется, если запустить удаленный far2l под любой другой терминалкой (кроме встроенной в графический far2l), он тоже будет работать. Но без клипборда, и часть хоткеев (Ctrl+цифры и может ещё что-то, сходу не соображу) отвалятся.
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 + средняя кнопка, вставилось.
вот мой файл настроек 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-ов
Патчик для поддержки xclip в консольном far2l я, кстати, сделал:
https://github.com/elfmz/far2l/issues/810#issuecomment-939531231
Тут подумали вот что: раз уж мы всё равно общаемся с иксами по поводу клипборда, почему бы у них заодно не спрашивать подробную инфу о состоянии клавиатуры? Чтоб отличать плюсик на малой цифровой клавиатуре от плюсика, который на кнопке с равно, например. Ведь в терминал обе эти кнопки отправляют один и тот же плюсик — различить их, не опрашивая клавиатуру через иксы, никак нельзя.
На днях код реализации этой концепции «гибридного ввода» добавлен в мастер. На локальных тачках работает вообще идеально. На удаленных, если канал с задержками, может поглюкивать (т.к. ввод от иксов и ввод в терминале приходят не одновременно) — поэтому на удаленные хосты лучше ходить из внутреннего терминала far2l, тогда хитрые сочетания клавиш будут пробрасываться его расширениями терминала и никаких глюков не будет.
Если хочется всё же юзать ввод через форвардинг иксов, а канал не очень стабильный, можно сделать так
#define XI_KEYDOWN_MAXWAIT_MSEC 1000
— у меня это существенно улучшило UX (это в TTYX.cpp)
Именно из соображений эстетики я боролся за правильное отображение буквально единичных пикселей (кстати, мне очень помогла в этом работа над эпичным переводом статьи про шрифты на хабре). И да, это важно.
PS: Как перекрасить синие панели в модный серый, в статье тоже есть. И, да, проблема синего на консоли на самом деле многих парит.
это можно сделать через DISPLAY и xclip
нужно чтобы дисплэй указывала на хост с которого подключение происходит а xclip нужно просто поставить.
А ещё есть OSC52, который не поддерживается почти нигде, кроме Microsoft'овского терминала, и при этом он выглядит как идеалогически верный способ реализации того же самого. Но ни гномовская терминалка, ни кдешная в него пока не умеют. Тем более они этого не умели, когда far2l делать начинали.
Лет 20 назад используя виндовз фаром пользовался с удовольствием. В линуксе не придумалось зачем он.
Разве что тем кто на двух табуретах одновременно сидит — один привычный инструмент.
молодец, истина где-то рядом :) все люди с которыми я знаком, сидят на как минимум двух табуретках, а других (однотабуреточных) людей я как-то и ни разу не видел. Это наверное должны быть разработчики седцевины RedHat, и то не уверен.
далее, как другой пример, все люди делятся на емаксовцев и на вимовцев, (не будем рассматривать набиральщиков текста одним пальцем в Ворде) но не два в одном на одинаково хорошем уровне (не будем рассматриватьтех кто может набрать несколько слов в обоих редакторах, и которым более того и не нужно).
И как вы думаете, почему так сложилось? :)
другой пример, все люди делятся на емаксовцев и на вимовцев
и на тех, кто не использует ни первый, ни второй. :)
«не будем рассматривать набиральщиков текста одним пальцем в Ворде»
«не будем рассматриватьтех кто может набрать несколько слов в обоих редакторах, и которым более того и не нужно»
Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE? Потому что это не удобные способы работы с текстом, дающие низкую продуктивность, и имеющие неадекватно высокий порог входа. Их придумали, когда нужно было пропихнуть какой-то приемлемый юзер экспириенс работы с текстами через телетайпы, в которых половины кнопок не было. В 2020 году в подобных ограничениях нет никакого смысла: нужно просто сделать в никсах нормальную консоль с поддержкой ВСЕХ кнопок. Что автор far2l и сделал, собственно.
Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE
Потому что они не IDE, а текстовые редакторы?
Потому что это не удобные способы работы с текстом, дающие низкую продуктивность, и имеющие неадекватно высокий порог входа.
Потому что это супер удобные способы работы с текстом, дающие высочайшую продуктивность, но имеющие неадекватно высокий порог входа. FTFY.
И да, как я уже написал выше, они — не IDE, они очень крутые текстовые редакторы, из которых некоторые пытаются сделать IDE.
Но никто не отправляет ¯\_(ツ)_/¯
Вы вот вроде пишете разумные вещи в соседних ветках, предлагаете не напрыгивать на mc, его пользователей и авторов, а сами, не разобравшись в том, почему люди любят Vim и Emacs, напрыгиваете на них.
Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE?
Эм… Ну, во-первых, правильно тут отметили, что это не IDE. А во-вторых, я лично знаю людей, которые в vim кодят. И делают это не для себя...
Это наверное должны быть разработчики седцевины RedHat, и то не уверен.
Нет, вполне обычные люди. Без виндовс жизнь вполне себе существует.
И как вы думаете, почему так сложилось? :)
Затрудняюсь сказать, считаю оба продукта лютым трешем, хоть и уважаю героизм авторов.
Мэйнтейнер p7zip из Дебиана пока не ответил на мой email, по крайней мере.
так надо баг открывать, а не личные письма слать
Нужно потестить что-ли у себя
запустите скрипт который будет писать данные в файл
например такой
#!/bin/sh
for i in `seq 1 200`; do
sleep 2;
echo $i;
done;
в mc нажмите F3 и если будете жать End то оно будет работать как tail -f, сделано это именно так потому что были определенные резоны.
mc не умеет архивы с паролями, mc не умеет плагины, mc не умеет samba (та что вкомпилина устарела примерно на 20 лет, пробовал обновлять там это оооочень это непросто)
А вообще, как показывает практика, сделать хороший именно менеджер архивов для *nix — не такая тривиальная задача, как кажется на первый взгляд. Дьявол в деталях, мы эти детали улучшаем понемножку одну за другой :)
~/.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~
— Аккуратность интерфейса. При нажатии на 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, понимаете о чем я?
Насколько получится через это вытащить на качественно новый уровень саму концепцию TUI в *никс? Время покажет :) Пользоваться этим прикольно, по крайней мере))
Это — повод поправить принципы работы консоли, чтобы посылала (с сохранением обратной совместимости, разумеется). Хорошо что хоть кто-то этим наконец-то занялся, пусть и в форме (пока?) нестандартного расширения.
far2l — идеальная площадка для разрыва этого порочного круга, потому что он и терминалка и аппа одновременно :)
Хм, я вроде в gui файл менеджере
Уточнение: в TUI файл менеджере.
Лишь бы клава не глючила так как в MC ну или была эмуляция, что-то типа Sublime'овской. И редактор в целом обновить бы чуть.
Вы примерно не правы.
PS: Заметьте — я говорю о программах, а вы вот лепите отсебятину о незнакомом человеке.
пример «слепленной отсебятины» о незнакомом человеке приведете? (это что из подсознания про себя написали)
Вы волков навигатором померяться решили? да я начинал с БК и ЕСок и я повидал много файловых менеджеров, в том числе и VC. Только вот не пойму причем тут это. В написали свое оценочное суждение относительно того что какой-то из ФМ хуже ничем не обосновав, когда я указал на вашу неправоту вы решили включить эйджизм и до кучи обижульку.
>>>>Вы примерно не правы
>>когда я указал на вашу неправоту
Вы наверное подумали, что ваше суждение — не оценочное, а высеченная в камне Истина, да? Смею вас огорчить…
PS: я ни на кого не напрыгиваю, по возможностям Far обставляет mc кратно. Если это у кого-то вызывает боль — нуштош, truth hurts. Никаких призывов к аргументации я не увидел, увидел вот это заявление, чуть выше.
mc существует лет 20, в виде дерева различной параллельности форков, и за 20 лет прогресс его печален. (извините, если это тоже кого-то вдруг обидит)
Просто прочитал ваше сообщение с недоумением, лень даже переспрашивать про то в чем превосходит.
"Вы примерно неправы" это не суждение о человеке а о его высказывании.
Ну и повышение прав также нужно для разных операций с фалами, не только редактирования.
ctrl-a (пометить всё),
ctrl-c (copy)
esc, sudo mcedit файл
ctrl-a (пометить всё),
ctrl-v (paste)
Как в mcedit выделить всё и отправить в системный буфер обмена? Я только мышкой умею, но это ограничивается одним экраном.
P.S. Создал mc.keymap по примеру выше. Но это же встроенный буфер, и если вызвать sudo mcedit, то он не подхватывается.
Тем, что когда пользуешься двумя системами сразу, неудобно переключаться между этими инструментами. Привыкаешь к шорткатам Far-а, а тут на тебе — MC с совершенно другими шорткатами и интерфейсом. Можно, конечно, MC подтюнить, но одинаковости все равно не добиться.
mc так умеет?
так ото ж…
Собственно, я интересовался чем Фар лучше МС, чтобы понять преимущества.
ну и редактор в нем такой, что я только в нем и работал с исходниками 20 лет, и только последние года три перелез на VSCode, IDEA и PyCharm
кроме того, ни один из внешних редакторов не работает нормально, если файл надо отредактировать прямо на серваке. тут Far тоже вне конкуренции.
Ха, с far2l я частенько прямо на серваке и пишу что-то :)) Вот эта вот фишка с terminal extensions (все хоткеи, клипборд) + удобный редактор с автодополнением и подсветкой.
удобный редактор с автодополнением и подсветкой.
Автодополнение — это хорошо, но. подскажите, что с отображением нумерации строк в встроенном far2l? Это (отсутствие нумерации) всегда меня бесило в ФАР.
Scintilla это очень хорошо, без шуток.
То на что в ФарТиме презрительно плюются и крутят пальцем у виска :)
То что не в состоянии оценить люди которые здесь и сейчас в комментах (не вижу их реакции если честно), оценят миллионы по всему миру, так же гарантированно, как восходит солнце.
Не знать что такое Scintilla не грех конечно, но жизн; заставит узнать если ребята это дело качественно прикрутят :)
Мне интересно туда именно клавиатуру и клипборд из far2l прикрутить, чтобы комфортабельность использования повысить. Ну и показать заодно, каким клёвым может быть UX TUI в *никсах, если расширения терминала far2l задействовать.
А там поглядим :)
Авторы mc изначально решили, что командер должен работать на любой системе, даже на тостере.
В результате они сильно ограничены в имплементации фич.
А мне не надо, чтобы оно работало на тостере. Мне надо, чтобы работало на моем достаточно стандартном компе, но чтоб все было удобно.
И вот эту задача проект решает на все сто.
запускаю второй раз и вижу
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
А насчёт сообщения, которое вы видите, это прикольная фишка, кстати. Допустим, вы зашли на сервер по ssh и гоняете там far2l. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась. Так вот, при таком раскладе far2l не умирает, а остается ждать переподключения, и при последующем запуске попробует восстановиться.
Но эта фишка может быть не совместима с far2lc, я не тестировал это. Так что попробуйте запускать просто как «far2l --tty».
far2lc устаревшая история, она была нужна, когда для sftp нужно было gvfs-плагином пользоваться. Сейчас есть NetRocks и это всё не нужно.
Буду этой фразой детей пугать. Идеально непонятная без контекста штука :)
Это нормально — иногда забывать, что вещи, в которых ты варишься, не обязательно очевидны всем окружающим))
Аналогичная ситуация - собрался, запустился, SSH-сессия оборвалась.
Теперь при запуске
./far2lSome far2l-s lost in space-time nearby: 1: {/var} - Far 2.3 21/12/06-9b05774-alpha x64 root@ubuntu Input instance index to revive or empty string to spawn new far2l
Выдаёт что-то непонятное:Some far2l-s lost in space-time nearby: 1: {/var} - Far 2.3 21/12/06-9b05774-alpha x64 root@ubuntu Input instance index to revive or empty string to spawn new far2l
Совет запускать far2l -- tty не помог - ошибка та же...
Что ещё можно попробовать?
Input instance index to revive or empty string to spawn new far2l
Выглядит как будто надо куда-то ввести цифру 1 или пустую строку...
--mortal
Этот аргумент применим только для far2l, который работает в режиме TTY. По умолчанию при закрытии терминала far2l продолжает работать 'в фоне' и при последующем запуске другого far2l в режиме TTY будет предложено активировать ушедший в фон far2l вместо запуска новой копии приложения. Этот ключ командной строки полностью отключает эту функциональность, так что закрытие терминала будет приводить к безусловному завершению работы far2l, работающего в нем.
Допустим, вы зашли на сервер по ssh и гоняете там far2l. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась.
Ну, замечу, что в случае когда нужна устойчивость сессии к обрыву — лушче вообще пользоваться screen'ом…
Наконец то и на Линухе, ачивка!
Осталось добавить тетрис — и станет просто лучшим :)
plugring.farmanager.com/plugin.php?pid=104
у меня Xterm настроен так чтобы esc последовательность генерировалась для ctrl+'+'
как этой последовательности научить far2lc?
мой конфиг 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()
Установка:
sudo dpkg -i ПАКЕТ_ДЛЯ_ВАШЕГО_ДИСТРИБУТИВА.deb
sudo apt-get install -f
sudo dpkg -i ПАКЕТ_ДЛЯ_ВАШЕГО_ДИСТРИБУТИВА.deb
По итогам — установлен фар, поставлено 200 мегабайт зависимостей, удалён фар.
Где нормальный пакет для дебиана взять?
Вам, скорее, подойдет вариант собрать .deb'ку самостоятельно. В CMAKE-скрипте с недавнего времени есть такая опция. Это прям вот в README прописано, раздел «Building DMG, DEB and TGZ packages».
Заодно, собирая вручную, вы сможете указать, нужен ли вам wx-бэкенд. Если собираете исключительно для консоли, это сэкономит вам изрядное количество места как раз на зависимостях.
На счёт собрать самостоятельно — там же ещё больше всяких зависимостей надо будет тянуть, чем для работы надо. Плюс я не программист, потому по сообщениям об ошибке мне бывает сложно понять, что от меня компилятор хочет.
К примеру, libpcre2-dev установлено, но конфиг всё равно ругается на то, что libpcre не видит.
[ 41%] Built target colorer_lib
Makefile:149: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
Всё же собирать самому проекты на стадии альфы, если не являешься программистом, очень сложно. Потому я и предпочитаю пакеты.
Совет с libpcre3 прокатил, но сборка стала на 44% останавливаться.
pastebin.com/5xnmiYmK — последние проценты
Не сохраняет, вроде бы, никуда, если специально не попросить.
Запустил с j1 — пока что собирается.
make[2]: *** Нет правила для сборки цели «/usr/lib/libfmt.a»
Наверное, не хватает этого самого libfmt. libfmt-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
Давайте дальше туда с обсуждением этой проблемы перейдем.
Для того эта кнопка и существует. Более того, там можно ещё и отвечать по почте...
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](https://habrastorage.org/getpro/habr/comment_images/a67/d63/1e4/a67d631e4dccd03f257ed2ba5a2292a3.jpg)
UPD: ок, тикет я сам закрыл уже
not reproducing any more
Отлично починили сборку ;)
у меня вот дебиан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
А что с вебдавом у Яндекса не так? Я пользуюсь им из-под винды из фара. Крайне редко, но позавчера работало. Проверил, еще работает.
Ну впрочем это только на конкретно вот этой тестовой картинке воспроизводится, а на других файлах нет. Странность
dpkg -i far2l_2.2.0-1_amd64.deb
Выбор ранее не выбранного пакета far2l.
(Чтение базы данных … на данный момент установлено 104982 файла и каталога.)
Подготовка к распаковке far2l_2.2.0-1_amd64.deb …
Распаковывается far2l (2.2.0) …
dpkg: зависимости пакетов не позволяют настроить пакет far2l:
far2l зависит от libssl-dev, однако:
Пакет libssl-dev не установлен.
far2l зависит от libneon27-dev, однако:
Пакет libneon27-dev не установлен.
dpkg: ошибка при обработке пакета far2l (--install):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
far2l
root@banshee:/home/aik/temp/far/far2l/build# apt -f install
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Исправление зависимостей… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
libssh-4 zlib1g-dev
Для их удаления используйте «apt autoremove».
Пакеты, которые будут УДАЛЕНЫ:
far2l libssh-dev libssl1.0-dev
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 3 пакетов, и 0 пакетов не обновлено.
не установлено до конца или удалено 1 пакетов.
После данной операции, объём занятого дискового пространства уменьшится на 31,2 MB.
Хотите продолжить? [Д/н] n
Аварийное завершение.
spdlog убран из зависимостей, попробуйте на свежем мастере!
2 года назад, перейдя на linux на работе я наткнулся на него и радости не было предела.
Воткнул его и на мак.
Так что на любой операционке вижу родные синие окна.
Наверное, надо сделать fallback в xclip, если экстеншны не поддерживаются. Хорошая идея.
/* 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
github.com/elfmz/far2l/issues/819
far2l «форкнулся» от ветки Far 2
А почему 2, если уже лет десять как есть 3?
Вот если бы задача порта была бы сделать не линуксовый, а кросплатформенный Far, и с апстримом регулярно синхронизироваться — тогда да, надо было бы форкаться от тройки. Только это утопия: апстрим совершенно не желает становиться кросплатформенным, и даже, по ощущениям, готов скорее препятствовать инициативе в эту сторону.
Поэтому скорее уж far2l обратно на винду портируют, чем разработчики «ванили» согласятся на кросплатформенность. А раз так, к чему на них завязываться? :)
Только это утопия: апстрим совершенно не желает становиться кросплатформенным«Совершенно не желает» — это «делаю пулл-реквесты, а их не принимают» или что-то другое?
Разработчики вроде бы давно согласны.
Это история про «отложить до никогда». Обратите внимание, апстрим ни одного инфоповода на Хабре за последние 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 шансов больше, но это имхо и я не нейтральная сторона здесь :)
А раз пользователи ни того ни другого проекта ничего особенного не выиграют, разумеется, делать эту работу ни той ни другой стороне не интересно.
А вот что было бы хорошо, так это договориться об общих стандартах/интерфейсах. Например, сделать поддержку far2l terminal extensions в командной строке виндового фара, чтоб оттуда можно было без всяких патченных putty сделать ssh что-нибудь.рф, запустить там внутри far2l и чтоб кнопки и клипборд подхватились. Но для этого разработчикам виндового фара надо всё же признать право на существование far2l и тот факт, что никакого другого порта нет и не предвидится, а это им очень больно, по-видимому.
А вот что было бы хорошо, так это договориться об общих стандартах/интерфейсах. Например, сделать поддержку far2l terminal extensions в командной строке виндового фара
Так там же договариваться просто не с кем, виндовый фар за создание pty не отвечает, как и openssh. Это надо MS просить conhost доработать, но для этого надо сначала far2l terminal extensions сделать стандартом.
Впрочем, за создания pty он, может, и не отвечает, но перехватывать пробегающий там контент, вытаскивая интересные ESC-последовательности, или, наоборот, inject'ировать их туда — он может? Или нет?
Скорее не может чем может: если перехватить вывод другой программы — та это заметит и может решить что она вообще от консоли отключена.
Теоретически ESC-последовательности может обрабатывать OpenSSH, но, насколько я знаю, они этого делать не хотят, потому что полноценная реализация VT-протоколов сложна и в основной линукс-версии нужна как корове седло.
С другой стороны, на винде много всякой магии бывает. Вон, ANSICON как устроен, заметьте.
Именно его код, кстати, в far2l как раз во внутреннем VTE используется :)
Так вот это Micro Focus (WRQ, Attachmate) Reflection. Возможно, есть смысл полюбопытствовать на начинку?
В принципе, если код спецсборки putty несколько причесать, он вполне мог бы служить демкой «как-прикрутить-такое-к-любимой-терминалке».
Ну реально, забавно когда утверждается о некой идеальности ФАРа, этим и сам Рошаль грешил, но чаще всего грешат люди которые ФАРом и не пользуются.
Команда ФАРа сделала достойный восхищения рывок внедрением Луа в 2012 году, но с тех пор — реально все.
Далее — не очень тщательное и осмысленное допиливание интеграции с Луа (хотя это важно),
и рефакторинг Сишного кода. Это тоже важно, там очень много чего надо реально рефакторить,
и очень хорошо что @ДркНсс этим старательно занимается.
Но с точки зрения потребителя говорить реально не о чем за последние 7 лет.
Не знаю что с Emacs, но ка пример который я знаю, Брам (создатель Вима) сейчас усиленно пашет на свой язык Вим-скрипт, для улучшения интеграции.
Я все равно не хочу учить этот язык (есть способ писать и на Луа в Виме),
но у Брама есть цель и понимание что надо делать для развития продукта.
А нынешняя команда ФАР(3) вызывает ощущение что где-то заблудились,
но им там хорошо самими с собой ))
По поводу Far3 разделяю ваш взгляд на ситуацию :)
А что касается рефакторинга, новый код elfmz очень красиво и чисто пишет (в NetRocks гляньте для примера), а что касается старого, по его поводу, как я понимаю, пока позиция «не надо чинить то, что не сломано».
А нынешняя команда ФАР(3) вызывает ощущение что где-то заблудились,
но им там хорошо самими с собой ))
Я лично крайне редко обновляю фар — по принципу "работает, не трожь". Чего там пилят — узнаю случайно из подобных тредов. Опять же, если мне чего-то не хватает, пишу сам. Правда, на c/c++ писать как-то не с руки, поэтому пишу на C# (да, такая возможность есть через отдельный плагин). Последний раз писал плагин для когда-то годного сервиса Amazon Cloud Drive (где был безлимит на хранение файлов). Потом забрали безлимит, а еще позже и доступ через АПИ, поэтому плагин потерял актуальность, а Амазон мои денюжки, но это уже другая история. Зато я переписал плагин под Pcloud, где дают место размером 2TB на 99 лет (ну, давали, как сейчас не знаю) за единоразовый взнос. Так вот, к чему я. А к тому, что пользователям таких продуктов как Far, если они свыклись с тем, что есть, особо ничего от разработчиков и не надо. Ну максимум какой-то файн-тюнинг. Отсюда и видимость стагнации. И тот факт, что "им хорошо с самим собой", уже прекрасен. Хорошо, что интерес не теряют.
P.S. Подумалось тут, а ведь утилиты ls, find, chmod, chown — тоже стагнируют. :)
Ну конечно ничем кроме форка такая политика закончится не могла.
они выдумывают смешные отговорки и пилят что угодно кроме самой нужной людям фичи.
Это же их право, не правда ли. Хотя, я думаю, если бы кто-то проспонсировал, то ситуация бы изменилась.
P.S. Я, правда, спонсировал как-то разработчика плагина NetBox, а он редиска накормил обещаниями и ничего не сделал, но то такое — я допускал риск :)
Автора плагина Lua для Far тоже вначале на форуме клеймили, что, мол, ненужно. Однако, потом приняли.
Просматривается тенденция – главные прорывы за десять лет сделали люди не из Far Group.
Портировали lua в far2l вот:
https://github.com/elfmz/far2l/discussions/1197
Я вот в виме описания к коммитам пишу (потому что он по умолчанию), как каналы улучшают мой workflow?
Ситуация печальная, конечно. Но есть так как есть: скорей уж far2l перенесут обратно на винду, сделав ещё один бэкенд (было: wx/*nix_tty, станет wx/*nix_tty/console_winapi), чем ваниль кроссплатформенной станет.
Кстати, под cygwin far2l собрали уже ради интереса :)
читал перебранку автора фар2л насчет портирования ФАР2 на никсы.
обе стороны могли бы быть тактичнее и продуманнее, но это трудно, по себе знаю :)
Я слышал краем уха что одной из основных задач постоянного рефакторинга @ДркНсса это отделение и вынос платформозависимого кода от универсального.
В то же время он ничего никому не говорит про эту задачу, у него «рефакторинг» и все.
Еще я знаю что к качеству кода он очень тщательно относится, и я ему доверяю, человек умный.
В то же время, он, как и вся команда ФАРа, очень наплевательски относятся к лицам предлагающих сотрудничество в развитии.
С еще одной стороны, они все могут быть очень и очень неожиданно дружественными к пользователям «от сохи».
Создание всех этих бесчисленных справок например, само наличие форума — в огромный плюс ФарГрупу.
все очень неоднозначно с ними, но как итог — я считаю что ни развития ни элементарных недоделок с 90-х там в ближайшие 10 лет не будет.
Хотя люди в Сях и нутрях ФАРа очень сильные, на мой взгляд, но в остальном — у меня есть сомнения
Бесчисленное количество «Но» там. Сплетничаю конечно, но наболело просто
Могли бы. Если б от дружбы-интеграции могли как-то выиграть пользователи. А пока никакой практической выгоды от дружбы не вырисовывается, можно и попрыгать друг на друга иногда))
> Я слышал краем уха что одной из основных задач постоянного рефакторинга @ДркНсса это отделение и вынос платформозависимого кода от универсального.
Ой, ну это уже классическая «история Пети и Васи», хоть в палату мер и весов неси. Пока они там будут делать идеальный код, все потенциальные пользователи с никсов уже давно в фар2л утекут, сделают там суперкомфортный ФМ с толпой сторонников, а код зарефакторят в каком-нибудь отдаленном светлом будущем, толпой это не сложно совсем.
> В то же время он ничего никому не говорит про эту задачу, у него «рефакторинг» и все
Угу. А итеративные процессы разработки с постоянной обратной связью ведь не просто так придумали (RUP там, Aglie всякие etc), а как раз чтоб в такую беду не угодить.
> Еще я знаю что к качеству кода он очень тщательно относится, и я ему доверяю, человек умный
Так новый код у elfmz тоже практически идеального качества, вы исходники NetRocks видели? Можно в учебниках по плюсам печатать, по-моему.
> очень наплевательски относятся к лицам предлагающих сотрудничество в развитии
Вот тоже так показалось, да. Очень сложно айтишникам понять, как это гуманитарные факторы могут в бОльшей степени определять перспективы ПРОГРАММНОГО продукта, чем технические. А вот: программы-то люди пишут.
> Бесчисленное количество «Но» там. Сплетничаю конечно, но наболело просто
По-моему, вытаскивание таких вещей на публику это не сплетни, а шаг к оздоровлению ситуации. Сплетнями это было бы, если б вы мне это в личку писали. А тут общественно-значимый проект, отчего ж не пообсуждать его публично?
PS: Ну и да, как тут не вспомнить Джоела с его «никогда не переписывайте с нуля»? Тут не с нуля, правда, но логика та же: на полировку и так работающего кода тратятся усилия, которые могли бы пойти на нужные юзерам здесь и сейчас штуки, и в итоге теряется пользовательская база в пользу конкурирующего продукта, который меньше парится по поводу идеального кода и больше думает о пользователях.
логика такая, — нельзя сделать ничего стратегически полезного на плохом фундаменте,
потому что это будет пирамида из костылей, рассыпающаяся от малейшая тычка,
работать с этим будет мучение, будут нечинимые баги,
как и в силу этого не будет дальнейшей функциональности.
А сейчас он отделяет зерна от плевел, упрощает и улучшает код,
делает его реформо-пригодным, дружественным к человеку с нуля.
Это не цитата, а смысл его деятельности,
сам он по другому сказал, но ровно в этом смысле.
В принципе-то, я понимаю о чем он говорит, знаю не понаслышке что такое нереформируемый код.
У меня претензия в том смысле, что:
— а нельзя ли иметь все-таки какой-то план и какие-то сроки?
— а нельзя ли озвучить причины почему то-то и это вдруг так невыполнимо? (я лазил в коде, знаю что вродь легко выполнимо)
— почему там и сям наложены какие-то необьяснимые табу на ровном месте?
Далее, вот @DrkNss как раз очень против переписывания с нуля, он именно перебирает код, и это действительно итеративный процесс.
Как Джоэль и завещал типа, и я ему верю, мне это импонирует, хотя Джоэля я особенно много не читал :)
Жаль правда что Джоэль ему заодно не рассказал и про методы agile, и что с пользователями тоже надо итеративным как-то быть,
если они конечно нужны эти пользователи
А то, что этот код не соответствует представлениям о прекрасном конкретного человека — проблема этого человека, а не кода :)
Снова вот Спольски процитирую: код не ржавеет.
Что же до нечинимых багов, то что-то я не вижу хабрапостов с заголовком «ура, мы починили в Far3 баг, сидевший там 10 лет и бесивший всех», набирающих по 100+ лайков.
Я не согласен практически ни с одним из тезисов.
Код Фара очень разнороден, во многих местах практически безнадёжен. elfmz говорил, что код копирования файла проще выбросить, чем починить; я попробовал, и я согласен.
Код, который использовался годами и протестирован, совсем не обязательно хорош. Обычно наоборот, он оброс костылями, мхом и грибами, и никто уже толком не помнит, что там как внутри.
"Огромную толпу пользователей" собрал оригинальный Фар. Текущая группа поддержки её растеряла, поскольку она, как многие заметили, не очень дружественна к новым пользователям и даже контрибуторам.
"Не приводил к потерям данных" – ну вот у меня копирование файлов добавляет 1 час к таймстампу. Это потеря данных. Работает оригинальный виндовый код, см.п.1.
У кода есть критерии чистоты. Их формулировали, среди многих, МакКоннелл, Мартин, Фаулер.
Не знаю, в каком контексте говорил Спольски, но код не только ржавеет, но и гниёт, если активно не поддерживать чистоту архитектуры, но при этом добавлять фичи или даже просто чинить баги.
Также Far теряет время создания файла при переносе даже между томами, если нужно сохранить приходится пользоваться WinRar'ом.
К слову, коду копирования файла таки написана альтернатива: в NetRocks есть псевдопротокол «file», который умеет копировать файлы. Нужен он затем, что обычное копирование в фоновый режим перевести не получится, а вот NetRocks такое умеет.
а там реально есть что улучшать, унаследована куча багов, и это лечение, да проделывается.
На уровне слухов — в этот его рефакторинг входит и отделение кросс-платформенного кода от зависимостей.
НО )) никто ничего точного сказать не может, разве что рыться в Сишном коде.
Если же @elfmz порылся и не был в востроге от того что нашел,
то его скептицизм вполне возможно был обоснован.
при условии что @elfmz понял что он там нашел конечно ))
а так — реально никто не знает чем там занимается @ДркНсс,
может просто развлекается на досуге перетасовывая код.
Спрашивать — бесполезно, спрашивали уже, многие, и не один раз, и по-всякому
PS
Упс, увидел ответы unxed на мое то же самое мое многословие, после того как еще раз запостил на ту же тему, извиняйте, в итоге я все равно все прочитываю, и внимательно :)
Пользователи виндового фара такой форк до сих пор не сделали, по-видимому, по той единственной причине, что им и в unicode far 1.80 уже в основной массе всего хватало :)
Вот бы ebuild еще.
Спасибо! Да, из коробки, к сожалению, не завелся. https://gist.github.com/ilya-pirogov/51ab6c19008b8928b6f88996b05b7f8a
Будет время — попробую допилить.
-- 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 флагами, иначе какой в этом смысл? :)
Если кому интересно, то ebuild готов.
https://gist.github.com/ilya-pirogov/84336b5232ee421d335a35a06d646f40
Единственное, он у меня не захотел собираться с shared libs, но да это не критично.
github.com/elfmz/far2l/issues/771#issuecomment-713410516
github.com/elfmz/far2l/issues/613#issuecomment-713333688
![image](https://habrastorage.org/getpro/habr/comment_images/3b9/278/9d6/3b92789d652aa68a3a7e258a9a7debaf.jpg)
Спасибо за труд!
Моей работы там только маленькая часть. А вообще 35 человек контрибьютит уже :) На хабре ещё есть lieff, он тоже в far2l коммитит.
UPD: А, уже есть же, точно. Тогда там надо прям вот написать в тикете, что с putty «ощущения не те»))
Возможно, вам поможет этот патчик + тулза xclip + установка x-сервера и переменной DISPLAY.
После вот этого коммита вы можете такое устроить, если в WSL2 поставите пакет libx11-dev и будете держать работающим какой-нибудь X-сервер. Ну то есть если у вас иксовые приложения из WSL2 работают, заработает и клипборд в far2l в windows terminal.
В мастдайке Far очень нужен: из-за того, что в ней отсутствует bash и coreutils. Но в линуксе за глаза mc хватает!
Но зачем?
Удобно, когда привычные инструменты в разных ОС работают похоже.
А где связь между bash и far? Это ни разу не альтернативы друг другу, они разные задачи решают.
Понятно что Mooffie и сам мог бы быть понастойчивее,
но я видел результат его работы, и, извините, теперь результат его, а шишки — ваши :)
да кто-ж его знает.
>хочу немного поругаться за отлуп 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.
Не, я имею ввиду обоснование. На каждый софт, либу, репу. Нужно получить апрув, начиная с безопасников. Они спросят, зачем тебе прикладной софт на этих серверах… и, будут правы. Но, если кому то можно ставить любой софт не на свои личные хосты, а тем более на сервера клиентов, то вопросов нет)
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 вносит ненужное разнообразие в ФС и список процессов на том конце.
Это я к тому, что это все таки прикладной софт. Для рабочей станции. На серверах не нужен. Но на рабочей станции есть гуишные долфины всякие, крусадер и тысячи их. Т.е. ниша фара очень узкая. Типа Ностальжи, фан. Или я не прав?
а вот для того что бы разобраться в кучей файликов и придумали файловый менеджер.
я вот до сих пор фаром пользуюсь, он пережил весь путь от вин95 до вин10. где-то есть и тотал командер, но он не удобен, хотя и есть свои фишки.
У нас, к примеру, mc стоит на тестовых стендах (не у заказчика, а на наших собственных), т.к. не вся команда свободно владеет командной строкой. Возможно, могли бы туда накатить far — накатили бы far.
Смысл Vim (как и ФАР) — продуктивность и универсальность применения.
Это далеко не всем нужно конечно, но поэтому пример с Крусадером, Дельфинами,
как и с MS Word, — мимо кассы :)
Но как теперь пользоваться Alt+Tab?
Из проблем заметил в 2—6 раз более низкую скорость копирования множества мелких файлов чем в mc. Ещё по Ctrl-O нельзя вернуться в панели когда в консоли что-то запущено.
Но не могу не отметить, что несмотря на 10 лет работы с mc, у FAR хоткеи всё равно удобней. А повышение привелегий вообще киллер-фича. Очень жду релиза.
Допилить mc, наверное, было бы проще и правильней чем портировать FAR, но как-то не шло. Может при наличии конкурента пойдёт.
почему alt-«что угодно» нельзя переопределить это потому что все другие зашитые сочетания полетят. кроме того для консоли нет никакого alt есть esc-последовательность и для русских alt-й и для англ alt-q начало последовательности будет одинаковым а конец последовательности в зависимости от кодировки, для однобайтовой колировки это одно число (в зависимости от того кои или ещё какая разные коды) а для utf-8 придет 2 байта.
Вобщем это крайне сложно перенастраивается.
Ещё по Ctrl-O нельзя вернуться в панели когда в консоли что-то запущено.
Это ж всегда было.
несмотря на 10 лет работы с mc, у FAR хоткеи всё равно удобнейДа!.. И слёзы счастья по лицу…
![Да!](https://habrastorage.org/getpro/habr/comment_images/53c/7c0/17e/53c7c017ec09229697c8a3486115217c.gif)
Просто панели открываются, а не редактор.
Хм, никто даже не заикнулся про то, что есть doublecmd — более продвинутый far, который тоже кроссплатформенный и имеет все тоже самое и еще кучу ф-ционала в нагрузку
открываю такой
p7zip_oemcp_ZipItem.cpp.patch
а там
sizeof(lc_to_cp_table) / sizeof(char *);
У p7zip кодовая база живет на с++98?
![](https://habrastorage.org/webt/ap/kq/fi/apkqfin1idexwbniyvk_60axy_i.png)
На досуге погоняю его на ноуте — там у меня Linux Mate xfce.
Но и факт сборки замечателен — я ожидал каких-нибудь проблем с зависимостями, но нет, всё взлетело, хотя и с кучей предупреждений.
В инструкции в зависимостях написано 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
Вылазит почему-то на верхнем краю экрана, вводимые символы пароля никак не отображаются, а хочется чтоб появлялись звездочки, как и в других местах, где вводится пароль. Ну и сам диалог по стилю отличается от остальных.
А так я очень доволен.
На linux последние лет 10 использовал mc, который полностью устраивает. На MacOS сейчас так же использую mc и он все так же полностью устраивает. Hotkeys это дело привычки, за пару месяцев после перехода с linux на MacOS в принципе привык
Ну а как еще одна альтернатива mc — конечно пусть будет
Но я бы сказал что FAR лучше чем MC. Автору респект за эффорт!
UPD: Оставлю ссылку на этот прекрасный олдскульный сайт здесь, пока он тоже не сгинул как часть истории — www.dnosp.com/e_index.php :D
UPD2: Все не так плохо и оказывается форк NDN живет и обновляется в 2020, и у него тоже есть Linux Port. Hooray! ndn.muxe.com
ДН был написан на паскале… Вот живой первоисточник: https://www.ritlabs.com/en/products/dn/
Есть, вот, например: http://ndn.muxe.com/download/
Но как-то в коммьюнити о нём мало слышно.
А вот попытка opensource линукс версию сделать, кстати. Можно подхватить и допилить, если есть интерес.
Вот, собственно. Компилируется и даже можно запустить тетрис))
Но вообще полузаброшенный статус не удивителен тут: я даже исходников этой ветки пока не смог найти.
Я полагаю, что экосистема плагинов у Фара была богаче. Я тоже когда-то пользовался доснавигатором. Но возможности far для меня в итоге перевесили. Да и со стабильностью у поздних форков DN было как-то не очень, если мне память не изменяет.
И могу потдвердить что с Dos Navigator на FAR очень тяжело перейти.ну не сказал бы, на мс то перешел, а это по сути одно и тоже
Но я бы сказал что FAR лучше чем MCя не смог найти ни одного преимущества, как некоторые тут писали из преимуществ — самба, не пользуюсь от слова совсем, точно так же и sftp. Запароленные zip, да неплохо, но как часто оно нужно. Хотя вот да, работа с zip в mc ужасна, по F5 копирование ОЧЕНЬ долгое.
Есть ли у FAR какие то киллер фичи по сравнению с МС? Что я понимаю под словом киллер-фича, например, в sublime, как для меня, есть киллер-фича — множественное выделение по ctrl + D и последующее редактирование. Из тех редакторов что я пробовал (wordpad, np++, vscode, atom) — в свое время нигде такого не было, возможно уже добавили. Есть ли что то подобное в FAR по сравнению с мс?
У Некромансерской версии-то ведь нет исходников, а в тех, что выложены как «DN Open Source Project» — сломано буквально всё. Но у меня получилось их заставить по крайней мере собраться. Путем жесткого вырезания/комментирования некоторого количества кода, и, да, оно вылетает прямо на старте, надо разбираться, почему.
Но оно хотя бы компилируется!
Вот, ловите. Дальше мне пока лень :)
github.com/unxed/dn2l/blob/first_try/README.md
PS: Да, оно собирается только древним Virtual Pascal, под который написано. Прежде, чем пытаться его на какой-нибудь Free Pascal пересадить, наверное, надо заставить работать то, что есть :) Там по ссылочке есть скрипт, который сам раздобывает Virtual Pascal на вебархиве, сам вытаскивает оттуда всё нужное, ну и запускает сборку.
tendium вас эта забава тоже развлечет, возможно :)
UPD: Проверил на хеллоуворлде. Похоже, там VP RTL эту ошибку на старте кидает, то есть, проблема не в DN, а в VP, в исходники VP RTL смотреть надо.
А мой эксперимент с нативным портом DN тем временем от стадии «ура, скомпилировалось, только вылетает на старте» дошел до стадии, когда вот такое показывается уже. Не знаю, зачем я это делаю (вряд ли вокруг исходников на паскале сейчас комьюнити собрать можно). Но прикольно же :)
![](https://habrastorage.org/webt/bo/jz/bm/bojzbmutl2zv-_bcjx-nhqatyaw.png)
![](https://habrastorage.org/webt/25/yk/kb/25ykkbea57h3mua7c7ota9faufi.png)
![image](https://habrastorage.org/getpro/habr/comment_images/a30/7a5/4d4/a307a54d48966e42405ed2ecd38d4448.png)
Как бы этому теперь импульса поддать? :)
Ещё есть тема на форуме fp, можно там высказаться:
freepascal.ru/forum/viewtopic.php?f=10&t=43132
И тред на Лоре (оказался полезным внезапно):
www.linux.org.ru/news/opensource/15971481/page2#comments
Если кто-то, как и я, считает, что кнопочка «форкнуть на гитхабе» это круто, а выпрашивать исходники каждый раз в личной переписке — некруто, предлагаю там высказаться тоже :)
Хорошо, но мало... Настоящей длинной консоли всё равно сильно не хватает. Это вот я не поленился, долистал до этого коммента и теперь знаю про F3-F4 в консоли. А до этого был сильно расстроен, что ни увидеть то, что выше экрана, ни даже скопировать с экрана я не могу!
Согласитесь, эта анти-фича просто убивает всё остальное и не зная этот секрет, ты уйдёшь обратно в mc и голую консоль.
F3 и F4 для работы с содержимым консоли не годятся.
А как бы вы эту задачу решали, и чем настоящая консоль отличается от не настоящей?
Там не только F3/F4 есть и другие способы открыть вьювер - например скроллинг мышью во время работы команды, о чем пишется в подсказке при запуске первой команды в сессии:
![](https://habrastorage.org/getpro/habr/upload_files/355/a8d/d65/355a8dd65c37e192d3c2d8d0c0a6fbac.png)
Что касается копирования из экрана консоли - то оно делается выделением мышью. Выделили кусок мышью, отпустили и все - оно уже в клипборде.
ни даже скопировать с экрана я не могу!
Не знаю как в FAR2L, а в фаре под виндой скопировать кусок экрана можно при помощи Alt-Ins
⇒ выделение при помощи Shift-стрелки
⇒ Ctrl-Ins
.
Согласитесь, эта анти-фича просто убивает всё остальное и не зная этот секрет, ты уйдёшь обратно в mc и голую консоль.
В консоли не зная «секретных» cli-команд тоже очень грустно. Без курения мануалов никуда.
Пользуюсь на маке. В основном для удобной работы с SFTP. Особенно это стало удобно с момента добавления поддержки SSH Agent. Крайне благодарен автору за этот порт. Правда, полностью пересесть пока не получается — одна из проблем — кривое отображение шрифтов, иногда буквы налезают друг на друга или проявляются артефакты.
Конечно существует. А как на панель вывести список всех моих SFTP-серверов? А еще, если у меня оборвалось соединение, как мне его восстановить? (подсказка: приходится выходить из mc).
добавляете группу SFTP
в нее добавляете отдельные sftp хосты.
а почему приходится перевыходить?
ctrl-r должен помогать, так то реализацию sftp в mc один хороший человек пилил, но потом он устал, если мы сейчас про sftp а не про Shell-соединение.
Перевыходить, потому что ctrl-r не помогает — до перезапуска mc каталог с sftp показывается пустым.
Каталоги быстрого доступа C-\
добавляете группу SFTP
в нее добавляете отдельные sftp хосты.
Не, ну это совсем не то. Во-первых, панель удобнее. Во-вторых, сходу не упомнишь, в каком там формате надо задавать строчку соединения, если это не делаешь каждый день. В-третьих, а где настройки для конкретного хоста? Что если мне надо задать отдельный ключ для хоста? Это мне надо лезть в мою локальную конфигурацию ssh? В-четвертых, а переключиться в shell subsystem на исполнение удаленных команд выйдет?
Короче, технически всё это есть. Но на практике в mc подключение по sftp построено из костылей с использованием сторонних команд. Да, это, конечно, соответствует юниксовому принципу SRP, но в случае с файловым менеджером я бы это ожидал из коробки или как минимум хорошо интегрированным плагином.
это я точно запиливал.
А вот я попытался, будучи залогиненным на sftp, создать там файл (shift-f4). Сначала выдало ошибку "Failed opening remote file 2 (-31)". А потом и вовсе грохнулось:
mc(70857,0x115375dc0) malloc: *** error for object 0x7f8e2dc29030: pointer being freed was not allocated
┌────────────── Error ───────────────┐ mc(70857,0x115375dc0) malloc: *** set a breakpoint in malloc_error_break to debug │
│ Fzsh: abort mcte file 2 (-31) │
│ %
Причем косяк повторяемый:
- заходим на sftp
- жмем shift-f4
- жмем f2
- вводим произвольное имя файла
- падаем
Я ожидаю возможности создать файл прямо на удаленной, но такой возможности, как я понимаю, нет.
╟────────────────────────╢
║ FTP-соединение... ║
║ Shell-соединение... ║
║ SFTP-соединение... ║
Так я же тупой юзер. Мне бы попроще. Просто открыл своё соединение к sftp и там же на сервере хочу чего-нибудь сделать. А тут мне надо еще разбираться — какой тип соединения выбрать. В фаре (в т.ч. в линуксовом порте) это поддерживается плагином без лишних телодвижений.
Разработчики режима Shell-соединения в mc явно руководствовались какими-то логичными мотивами, не позволившими им ограничиться sftp.
Shell-соединение выбираете или SFTP-соединение?
Shell как-то устойчивее, и шуршит на тонком канале заметно шустрее.
Плюс — работает практически всегда. Есть возможность зайти на хост по ssh — значит, и подключиться через shell можно. Даже если на хосте по каким-то причинам не работает scp/sftp. Очень выручает для разных экзотических хостов, вроде минимального openwrt или винды с cygwin.
Как оно там внутри сделано — не знаю; если бы я таким заморочился — наверное реализовал бы через отправку разных shell-команд вроде ls, cp и т.д., и парсил бы результат.
Как оно там внутри сделано — не знаю; если бы я таким заморочился — наверное реализовал бы через отправку разных shell-команд вроде ls, cp и т.д., и парсил бы результат.
Именно так и сделано
Я бы через scp делал...
Это не "вау", это ужас какой-то. Я так понимаю, для этого всего требуется кастомный ssh-сервер, который понимает, что команда echo FISH:;/bin/sh
является запуском FISH-сервера?
А каким образом команда echo FISH:;/bin/sh
запустит start_fish_server
?
ssh user@host "start_fish_server"
?mercurial как-то ухитряется запускать с помощью ssh себе в роли сервера.
Это вы нормальную команду привели. А mc, если я правильно прочитал тот документ по ссылке, делает вот так:
ssh user@host "echo FISH:;/bin/sh"
Вот я и спрашиваю — нахрена так сделано и как вообще оно работает?
в том-то и дело, что может и "ужас", но оно просто работает. Причём поверх системных наворотов. Если на целевой хост можно зайти только через пару "трамплинов", да ещё и с аппаратным gnuk-ключом — это всё абстрагируется до "если я могу в консоли сказать ssh host, то могу и в mc подключиться через shell к host" Если нужен пин-код к ключу — он спросит, как обычно.
А вот sftp иногда капризничает. Начиная от невозможности подключиться к некоторым хостам (в основном под виндой), до ощутимых задержек при доступе (листинге) к толстым папкам.
Нет не нужен.
cat
Разобрались, делаем :)
https://github.com/elfmz/far2l/issues/1819
Быстро пробежался по настройкам (может плохо искал) и не нашел, как сделать префиксом тильду в симлинках на каталоги — для файлов работает, для каталогов — нет.
Фишки GUI-версии достаточно интересны, но немного непонятно, как достичь того же эффекта, как множество открытых табов в терминале, в большинстве из которых запущен mc. Можно, конечно, сменить WM, но пока не хочется.
Так же, немного смущает отсутствие тем оформления: в mc из имеющихся всегда можно быстро подобрать удачную тему под текущую расцветку терминала. Например Xubuntu-dark хорошо сочетается с modarin256.
Но в любом случае, авторам порта и контрибуторам огромное спасибо. С сегодняшнего дня начну потихоньку переучиваться…
умудрился даже как-то собрать и запустить, где-то в 2017 :)
Поначалу от вашей затеи оптимизма не испытывал.
Казалось что создатели не потянут, и народ не подтянется.
Счастлив признать что был неправ.
Сам тяжелый пользователь ФАРа под виндовс, а надо нырять в Линуксы.
Постараюсь помочь проекту работой, не только работой.
Первый мой вопрос однако, хоть и не знаю насколько уместно будет спрашивать здесь именно здесь.
А что с поддержкой Луа скриптов есть, что планируется?
Я не самый большой фанат Луа, но пришлось втянутся, за неимением тогда выбора.
Теперь укоренился в Луа, поздно переучиваться.
И в целом-остальном, касательно экосистемы в целом,
внедрение Луа очень улучшит взаимообогащение с виндо-ванилью.
есть довольно много очень и очень стоящего наследия оттуда,
не в последню очередь и моего
Usecases — ну как сказать, считайте Луа способ писать плагины без необходимости компилировать, автоматизировать Фар3, допилить недостающую функциональность.
позволяет с разработчиков сердцевины продукта спихнуть всякие мелочи на пользователя, при разумном балансе это всем на пользу, и даже может быть буквально спасением.
Ближайший аналог — Vim, как пример того зачем «навешивать скриптологию/автоматизацию/кастoмизацию на и так прекрасный продукт».
Далее, я считаю любой серьезный продукт должен оцениваться с точки зрения юзабельности АПИ.
Если продукт сам по себе полезный, найдутся множество способов его использовать и приспосабливать, множество народу желающих это делать
Для этого python приделали, по-видимому, предполагая, что в *nix мире это более привычное решение той же задачи :)
Хм… Вообще-то как раз Lua это де-факто стандарт для внедрения возможностей расширения функционала. Я вот навскидку могу сказать, где используется lua. Это прежде всего nginx, apache http server, haproxy, nmap, redis, varnish, neovim, wireshark. А вот где используется Python для написания плагинов, затруднюсь (сразу предлагаю исключить любой софт, написанный на питоне, во избежание разночтений).
Я не считаю себя вправе педалировать Луа без конкретного плана действий и предложений по существу,
БЕЗ того что я изучил досконально ситуацию на данный момент в ФАР2Л,
и насчет существующих возможностей там питона например.
меня за недостаток доскональности, часто и много и справедливо били ФарГруповцы :)
у них с этим хоть и перебор, но я все же как-то проникся моралью
Пока отмечу, что для Луа можно портировать ранние версии плагина LuaFar4Editor для версии тогдашнего ванильного Фар2.
для простоты, считайте что Луа в ФАР3 это тот же самый, непринципиально чуть перестроенный LuaFar4Editor для ФАР2.
Принципы работы ровно те же, и можно тупо брать этот плагин как он есть, соответствующей версии, и пересаживать в Фар2Л.
Или иными словами :) умоляю что не надо писать плагин для написания плагинов на этом этапе, на этом этапе надо адаптировать старый, добрый, простейший LuaFar4Editor.
2.) Возможно, ровно так же как сделан API wrapping для питона, так же сделать и для Луа.
Но тут важность в совместимости Фар-Луа-АПИ с ФАР3.
хоть для начала может и сделать «абы какой» lua-wrapping?
не знаю, тогда отсеются многие и многое, чего не хотелось бы
Просто, ну, будет странно, если это запощщу туда я: там и так пол багтрекера моих соображений о будущем far2l))
до чего добрались рученки, а это приблизительно все,
и более чем достаточно :)
Насчет скопировать -оформить предложение, сижу на работе, надо закончить кое-что, работу и все такое,
и наверное следующий мой массированный заход ожидается не раньше выходных :(
Немного другая тема, если прокрутить фарш немного назад.
все таки хотелось бы, чтобы @ефмз обьяснил более детально и на конкретных примерах чем код ФАР2 более транспортабелен чем ФАР3?
А то я сейчас перечитал дискуссию:
forum.farmanager.com/viewtopic.php?f=3&t=70&start=30
и показалось что уважаемый @елфмз чрезмерно резво начал кромсать код, и не видно упоминаний каких-то предварительных попыток наладить сотрудничество.
а там предварительная консультация весьма бы не помешала.
были ли закулисные переговоры может?
зачем так было ненавидеть НТФС и «вырезать все включая коменты»?
далее по тексту весьма неуместно упоминается ненависть к никсовым терминалам,
и даже заявление что «делается игрушка чисто для себя»
цитаты почти дословные кстати :)
Вот я вспомнил откуда взялся мой тогдашний пессимизм, из этой дискуссии,
в которой @ДркНс как раз выглядит в более выгодном свете
Мне ситуация видится так: разрабы ванили годами делали всё-что-угодно-только-не-самую-нужную-людям-вещь, в итоге пришел вот человек и сделал так, как ему было быстрее и проще.
Кто-то на это обиделся, ну штош теперь.
Закулисных переговоров никаких не было, во всяком случае с моим участием.
На самом деле я изначально начал с 3го фара, потом понял что сделать MVP со вторым будет проще, тупо потому что у него меньше кода. Главные сложности при портировании были не в привязке к winapi (казалось бы), а в более высокоуровневой логике работы с путями и прочее. У 2го фара код был проще тупо потому, что его было меньше. Какие при этом там используются строки — велосипедные или std::string — на фон этих проблем — фактор минимального влияния.
Это не значит что я прям принципиально против 3го фара, это значит что я хотел чтоб заработало побыстрее — потому что самому было нужно. Была надежда что девелоперы подхватят идею и далее пересадят аналогично 3й фар — на тот момент работы там было примерно на месяц. Но оказалось что им это не надо, да и вообще им не все это пришлось не по вкусу. Так что живем как живем.
На самом деле у меня был давшнишний опыт создания софта со скриптами и плагинами. По факту я оказался главным писателем этих скриптов и сделал из этого определенные выводы. Я конечно понимаю, что по закону жанра любая программа должна со временем превращаться в интерпретатор диалекта ЛИСПа, но для себя решил, что удобство пользования полезнее чем превращение в IDE.
А что касается фаровского плагин апи… Мне одинаково не нравится и апи 2й версии и апи 3й версии. Могу проаргументировать, но если коменты почитывают разработчики оригинального фара, они могут обидется :)
Портировали lua вот
https://github.com/elfmz/far2l/discussions/1197
bitbucket.org/scite-ru/scite-ru.bitbucket.org/wiki/Home
(собирается в Windows через прилагаемый MinGW)
P.S. Под Ubuntu 18.04 (32) тоже года два назад собирал Far2L и пользуюсь.
Как, понимаю, плагины из Far2/3 портируются на выбор и хотелось бы видеть и плагин Time104.
Пробовал в Far3 запускать демо пример плагина написанного на SPF4, но не совсем он стабильно в нём запускается и есть какие то «ньюансы» при его сборке для «восприятия» системой загрузки плагинов Far. SPF4, кстати, портирован и под Linux.
nginx
а где lua в nginx? есть openresty (и даже у меня используется), а в nginx сейчас js.
apache
вы про mod_lua? так он один из толпы mod_XXX
ИМХО при наличии python lua не будет востребован
а где lua в nginx? есть openresty
Так openresty это по сути и есть nginx, на стероидах, правда, но nginx. И, насколько я помню, изначально lua продвигался именно как замена еще более раннему perl (который таки был частью nginx), хоть и был 3rd party. Это потом js появился. В любом случае, так как динамическое подключение модулей завезли в nginx уже давно, подключить lua модулем в чистый nginx не проблема.
вы про mod_lua? так он один из толпы mod_XXX
А что плохого в том, что он mod_XXX? Если у приложения модульная архитектура, то разработчикам надо LUA неприменно сделать неотделимой частью ядра? Ну, чтоб было труЪ использованием? Кстати, mod_lua, как я понимаю, вполне себе часть проекта, а не 3rd party (как в случае с nginx vs. openresty).
ИМХО при наличии python lua не будет востребован
Ну, это вкусовщина. ИМХО, главная выгода lua в его light-weight embedding'е.
Ну, это вкусовщина. ИМХО, главная выгода lua в его light-weight embedding'е.
именно это я и хотел сказать: если питон уже встроен — то это преимущество уже становится не особо актуальным.
Луа — очень простой в изучении (если попасть на нормальное пособие и не пытаться срезать углы),
размер lua dll runtime это полмегабайта, и в то же время Луа очень способный на многое, даже на все.
Не стоит думать что Питон лучше лишь тем что он популярнее, и он точно не лучше именно для ФАРа.
Мне вообще построение синтаксиса питоновского довольно отвратна, — это бред делать пробелы частью синтаксиса считаю.
Из питона можно обращаться в Луа, из Луа в Питон, это не проблема.
Задача, как я считаю, сохранить преемственность с ванилью (codebase), чтобы оставаться в единой экосистеме.
Форки и разбросанность — это то что убивает OpenSource, и про это еще в 90-е говорилось, и то что доказывается каждый раз.
думаю что надо ОБЯЗАТЕЛьНО унаследовать Луа, а плагины скрипты можно писать хоть на дотнете, хоть на питоне, хоть на Паскале, хоть на Луа,
собственно так как это сейчас вполне возможно и на Виндо-Ванили.
Есть аж целых два варианта достойных питоно-плагино-скриптинга от самих ФарГруповцев, и один очень проработанный давнишний стабильный вариант для Дот.Нет.
Луа — это мост, протянутая рука, и совместная дорога с Виндо-фароводами которыхй все ще большинство кстати, а сделать совместимый такой же АПИ-интерфейс на Луа — ни в каком месте совсем не проблема.
Так получилось что есть Луа, и с этим надо жить :)
И это не само собой получилось кстати,
а потому что некий Зейгерман пахал десятилетиями на ФАР и нормальный АПИ-скриптинг.
Это можно и нужно уважать, Шмуэля я тоже не всегда понимаю,
но он уникум и уникально много делал для ФАРа.
на протяжении десятилетий.
Если же вопросы будут ну совсем простые, уровня человека, который C/CPP первый раз видит, их мне можно задавать, например.
На самом деле конценция двухпанельного файлового менеджера потеряла всякую ценность в момент снятия ограничения 8.3 на имена файлов.
Ranger — единственный адекватный файловый менеджер для адекватных людей (то есть вимеров, говоря другими словами).
конценция двухпанельного файлового менеджера потеряла всякую ценность в момент снятия ограничения 8.3 на имена файловКак связаны 8.3 и двухпанельность? Не, я видел такое — во всяких нортон командерах краткие списки были в три колонки, и они как раз помещались в две панели + разделители, но это по-моему удачное совпадение, что не пришлось сильно подгонять интерфейс под стандартное текстовое разрешение.
Но, во-первых, другие режимы отображения вмещают в себя больше, и могут отобразить длинные имена даже в стандартных 80ч25 символах, во-вторых, графоний в виндовсах и юниксах позволяет не ограничиваться этими размерами, а растянуть даже консольные ФМ (не говоря уже о полноценных гуях).
это trueunixway особенность tar.gz — отдельно сжиматель, отдельно архиватор :)
Запускаю из kitty (развивающийся форк putty).
Сразу проблемы:
— при запуске «far2l --ee» лезут кракозябры в консоли.
— Нажатие Ctr-Fn эквивалентно нажатию просто Fn.
Второй пункт как-то можно полечить?
P/S/ Из putty по Ctrl-Fn то же самое, а вот --ee вылечился.
сделали. глубоко не тестил, но навскидку работает
https://t.me/far2l_ru/1389 тут
Одна из вещей, которой мне жутко не хватает в mc — это макросы.
через libwxgtk3 потянуло за собой 850 мб пакетов кода…
на сервере покамест оставлю мс :)
Ну этого мало — нужна глобальная замена (по дереву файлов, с маской, конечно, которая тоже может быть глобом а может регекспом), с поддержкой как bakcreference так и всяких \U
и \L
, нужно переименование файлов с помощью регексп-замен в их именах, нужно при Search-and-replace в тексте всякие расширенные конструкции типа "номер строки" и "номер замены", такое. RESearch очень мощный. Не sed
, Конечно, но со своими плюсами. Особенно в плане переименования файлов — без него приходится выкручиваться промежуточными скриптами и списками файлов в текстовых файлах. А все мы знаем как НЕУДОБНО в шелле работать со списками файлов когда в именах есть ПРОБЕЛЫ.
У меня через «brew install yurikoles/yurikoles/far2l --HEAD» не ставится, может где-то есть обычный пакет?
С первой попытки установки ещё и билдер в Xcode поломался. Решил вот так.
У меня работает. Но я сам собирал.
Тут важен не столько факт сборки (не частой), сколько готовые спеки.
Слегка потестировал:
- Rocks: пока не хватает бо́льшей части фич netbox. Прокси, туннели, shell для scp. При ошибке подключения — нет диагностики.
- Rocks: При подключении кидает в пользовательский каталог (что логично). Но попробуйте выйти наверх — вывалитесь обратно в rocks (работает «cd /»).
- Rocks: Нет варианта повысить привилегии для чтения/записи каталога/файла. В «старом» netbox такой фокус возможен через scp+shell=«sudo -i» (как вариант).
- FAR: Нет макросов (без них не сделать wtf-I-need, e.g. задать на BACKSPACE в панели с файлами «HOME-ENTER»).
- GUI-терминал в целом рабочий. Но чтобы заменить мой любимый Konsole, не хватает прокрутки.
Не хватает плагинов редактора (чтобы выкинуть виртуалку с FAR-3):
- Trail space truncater (резать пробелы в конце строк).
- Editor Word Completion (Без автодополнения что-то сложнее helloWorld писать не реально. А так FAR в небольших проектах комфортнее IDE). Но в тексте статьи есть «editor autocomplete». Я пропустил т.к. там нужно или фильтр править или руками включать. Также, нет перебора из нескольких вариантов дополнения как в EWC было…
- Функциональности Edit Crutch
- HexEditor (редко надо, но удобно).
- В «родном» терминале — всё ок.
- Настройки макросов сохраняются в ".config/far2l/REG/HKU/c/k-Software/k-Far2/k-KeyMacros/k-Shell/"
- К сожалению, k-Shell не различает режимы «панель» и «терминал». Так что, настроив ту же BackSpace на выход из каталога, мы теряем возможность пользоваться «забоем» в терминале…
Чего это нет макросов? Ctrl+<> работают себе.
Прокрутка по F3/F4, но без цветов. Это скучно, есть идея, как сделать с цветами, идея принята, висит тикет, руки не дошли пока.
Автодополнение есть в редакторе же. Hex редактор — использую biew. Edit Crutch и Tail truncater — запилите тикеты, попросите портировать. Может сработать :)
Спасибо за пакеты, добавил!
Прокрутка по F3/F4, но без цветов.
По F4 под WX-консолью — с цветами, только что проверил.
Прокси есть (через tsocks)
В TUI/хэлпе не нашёл. Возможно, через секретный параметр? Или надо самому городить «ssh -L» и т.д.? Но тогда — не считается.
По SCP — повторюсь, нужна (как минимум) возможность выставить кастомный шелл. В общем случае это команда, запускаемая на «той стороне». Примерный аналог:
ssh user@server.uri 'sudo -i'
Неплохо также было бы реализовать sudo-доступ к ключам из привилегированного каталога. Раз уж он есть для операций из панели.
Ну и всякие мелочи типа keepAlive. FAR+netbox именно тем и удобны, что всё это есть. (Кроме уродливой работы с ключами. Но вот тут-то far2l и подъехал!).
Автодополнение есть в редакторе же.
Есть. Но по умолчанию выключено и я не понял как включить «для всех».
Макросы — да, меня выше поправили. Но (пока?) нет вот этой фичи из FAR-3:
К сожалению, k-Shell не различает режимы «панель» и «терминал». Так что, настроив ту же BackSpace на выход из каталога, мы теряем возможность пользоваться «забоем» в терминале…
Прокси, туннели, shell для scp
Как уже написали, это сделано через tsocks, но включается через общую конфигурацию плагина — F9 -> Ctrl+U -> NetRocks options. И, да, придется править конфиг tsocks :)
Rocks: При подключении кидает в пользовательский каталог (что логично). Но попробуйте выйти наверх — вывалитесь обратно в rocks (работает «cd /»)
Если в настройках подключения указать Working directory вместо пустой — полный путь для изначального подключения, типа /home/user — то будет работать сразу так как вам хочется, без cd /
По SCP — повторюсь, нужна (как минимум) возможность выставить кастомный шелл. В общем случае это команда, запускаемая на «той стороне»
Для SCP пока такой возможности нету. Но если сервер — OpenSSH то можно использовать SFTP а не SCP, — в нем возможность повышения привилегий для беспарольного sudoer'а есть: Protocol options — Custom subsystem request/exec: sudo /usr/lib/openssh/sftp-server
SFTP вообще если честно более предпочтительный вариант, SCP — не более чем протокол на случай отсутствия SFTP.
там нужно или фильтр править
Ну да. Если хочется чтоб автокомплит автоматически включался для всех файлов — в фильтре просто пишете * и все.
e.g. задать на BACKSPACE в панели с файлами «HOME-ENTER»
FYI: Ctrl+PgUp выходит в parent dir безо всяких макросов.
Custom subsystem request/exec: sudo /usr/lib/openssh/sftp-server
Настраивается через небольшой хак (это — баг). Из TUI включается только при авторизации по ключу. Потом можно выключить. В ".config/far2l/NetRocks/sites.cfg" в итоге должно появиться вот это:
Options_sftp=CustomSubsystem:sudo\_/usr/lib/sftp-server … UseCustomSubsystem:1
А так — да, спасибо. Тут уже́ следствие косности моего мышления: netbox так не умел.
Ещё недоделки netRocks:
- Не полностью работает функциональность копировать/клонировать/переименовать. Работает только F5/F6 между папками внутри плагина. Как минимум, ожидаю что будет работать «shift+F5».
- Точно хочется опцию «сохранять последний каталог».
Если хочется чтоб автокомплит автоматически включался для всех файлов — в фильтре просто пишете * и все.
Спасибо, работает. Надо было лезть в «Параметры внешних модулей» а не «Настройки автозавершения».
FYI: Ctrl+PgUp выходит в parent dir безо всяких макросов.
Да. Но требует две руки (правый Ctrl не всегда есть). Таки спасибо, переписал пока макрос на менее разрушительный вариант.
Попробую не полениться и на досуге накидать тикетов. Очень уж мне far2l понравился.
Предвидя вопрос, а почему именно так? А в старом фтп оно так работало…
Shift+F5 у меня в виндовом фаре/нетбоксе виснет намертво почему-то. Я так понимаю это предположительно должно приводить к исполнению команды cp -r на сервере? Совсем уж специфическая штука выходит, может лучше так и писать- cp -r src dst?:)
Например мне приходится работать как в win, так и в linux — и пользоваться двумя FM с разным функционалом, как то не очень.
Например, в Астре, вызывало не раз путаницу:
Нажмем в МС ctrl+o (скрыть панели), введем команды.
Далее, вернем панели (ctrl+o) и повторим команды (введенные ранее, из истории) — не тут то было, их нет.
In 1991 or 1992, I wrote a curses-based file manager for Unix, a clone of the DOS Norton Commander.
Unlike the Norton Commander, curses, xterms and Linux did not support the mouse. So I called my file manager "The MouseLess Commander".
Linux at that time was a cauldron of hot ideas. And Alessandro Rubini created a library for console applications to get mouse support on Linux. We worked to add mouse support to the MouseLess Commander and by the end of this exercise we renamed the file manager to "The MouseLess Commander With Mouse Support".
Somehow I was talked into changing the name of the Mouseless Commander with Mouse Support. Since I was pretty bad at naming, we organized a vote on the mailing list and eventually the current name "Midnight Commander" was picked.
I miss the previous name.
© мигель де иказа (автор mc)
В мс есть консоль, это консоль и есть ком строка mc из нее в консоль попадают команды они запоминаются в истории. Если вы в консоли чтото выполняете то это не попадет в историю комстроки мц. Это логично.
Я ежедневно пользуюсь и far и mc. Неудобств не испытываю, часть хоткеев в фар натроил так же как в мц, часть хоткеев мц настроил такими же как в фар.
Не путаюсь. Настроение хорошее.
GUI-версия работает отлично и содержит, насколько можно судить, полноценный эмулятор терминала. К сожалению, не поддерживает режим 256 цветов.
Если бы GUI-версия имела возможность работы со вкладками по типу xfce4-терминала, то она стала бы самым полноценным терминалом со встроенным far'ом.
И еще, возможно плохо искал, но не нашел:
- возможности аналогичной mc'шной «pause after run — always», когда появление панелей после завершения команды выполненной в консоли откладывается до нажатия любой клавиши;
- аналога «Directory hotlist» (Ctrl-\) — Ctrl-Alt-цифра это что-то похожее, но не то.
Вот это прям очень легко добавить, запилите тикет!
Про 256 цветов и вкладки тоже, кстати) Хотя там немножко сложнее уже.
— Alt+F12 тоже не то?
Хорошая идея, самому не хватало. Сделал
Спасибо!
Alt+F12 тоже не то?
Нет, это просто история, а в mc перманентный список. Можно даже простой список без групп, т.к. реально в нем до 30-40 отсортированных по нужности закладок.
/usr/include &Includes
/home/user/projects &Projects
Между путем и именем повторюсь — табы. Амперсанд в имени создает хоткей. Можно делать разделитель — в этом случае вместо пути надо дефис поставить.
ЗЫ недокументировано потому что надеюсь сделать это конфигурябельным через UI, но как обычно руки не доходят
Развернул FAR2L на macOS. Для меня пока что неприемлимым моментом оказалось то, что NetRocks не запоминает путь на FTP, на котором я был в последний раз — всегда открывает с корня. Да, можно вписать вручную путь в настройки, но удобство не то.
Ну и меньшая проблема — шорткаты для директорий через правый Ctrl+цифра не работают, только через Ctrl+Alt+цифра. Идеально бы было через левый Option+цифра.
А так — очень круто, давно ждал развития FAR на Маках. Надеюсь, когда-то настанет момент, что можно будет скачать обычный установочный .dmg и перетащить мышкой себе в программы ;-)
Про последний путь в NetRocks надо бы вам тикет запилить :)
- Драматически низкая (200…400 кБ/с) скорость чтения/записи. Даже при больших блоках. NetBox имел аналогичную проблему, но там упиралось примерно в 1МБ/с. От размера блока почти не зависит: прокачка от 300к на дефолтном 32к до 400к при «выкручивании» в 128к. (Полагаю, надо подглядеть как это сделано в ssh/rsync.)
- «Модальный» редактор (но сохранение работает напрямую, здесь ок).
- (Feature request.) Возможность задать «консистентный» режим заливки/редактирования. Это когда сначала закачивается во временный файл а потом его переименуют. (На будущее, можно натащить функциональности из rsync или вообще перелинковаться с ним.)
А mc и сделан для тех, кто привык к far. Может быть лучшее, из двуханельников в Win. И я им там пользуюсь, как аквалангом. А в консоли он мне не нужен, как и mc. Есть же vifm, i3. А far, ненужный как mc, только лучше mc и эстетически красивее mc пусть тоже будет!
Спасибо огромное разработчикам.
Я человек ещё проще: вижу фар на линухе — ставлю, наконец, линух.
… и вот случилось чудо ( не прошло и 10 лет !) — нашёл то что так долго оне хватало DoubleCommander! Far хорош, но "… любимую не отдают! (С)"
Пруф!
![image](https://habrastorage.org/getpro/habr/comment_images/bce/0be/1ea/bce0be1eab5fdc7e08ef21e4ac633bf7.png)
Реестр, кстати, таки выпилили.
github.com/elfmz/far2l/issues/601
Есть Ubuntu, захожу на неё с винды через Putty. Как мне в far2l сделать повторный поиск строки в файле (Shift + F7)? В линуксе всё работает, а в связке Putty — Linux — нет :(
github.com/unxed/putty4far2l/raw/master/windows/putty.exe
в итоге сделал себе раскраску в духе Monokai, ну и выложил для всех, конечно. У нас opensource ведь.Вы не могли бы сделать эту тему в формате .farconfig, пожалуйста?
думал, сам, но посмотрел содержимое default_dark.tar.gz и ничего не понял
Было бы круто под Oracle Linux собрать. Но пока не хватает элементарных каких-то знаний.
Ошибку вижу. То что простая — понимаю. А вот что делать дальше — без понятия.
В Linux только докерами пользовался всегда, поэтому такое — просто тарабарщина:
CMake Error at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
Could NOT find Uchardet (missing: UCHARDET_LIBRARY UCHARDET_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindUchardet.cmake:16 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
far2l/CMakeLists.txt:156 (find_package)
— Configuring incomplete, errors occurred!
Может подскажете где взять сборку готовую под Oracle Linux?
Похоже не может найти либу uchardet. Под убунтой пакет называется libuchardet-dev.
Под Oracle Linux наверно uchardet-devel.
Да, точно, спасибо. На шаг дальше продвинулся.
Потом с spdlog-devel все так же повторилось.
Теперь собираться начинает, но на 32% все равно прерывается с ошибкой.
/home/opc/far2l/colorer/src/Colorer-library/src/colorer/common/Colorer.cpp:1:31: fatal error: xercesc/dom/DOM.hpp: No such file or directory
include <xercesc/dom/DOM.hpp>
compilation terminated.
Видимо "методом тыка" не собрать. Но в любом случае за помощь спасибо большое.
А теперь вам нужна либа xerces-c (arch) или libxerces-c-dev (debian). Как в Oracle — не знаю.
Да, есть такая, xerces-c поставил, но ничего не изменилось, к сожалению.
Far2l собрал с игнором ошибок make -j4 -i
Вроде работает, но т.к. при сборке ошибок много, надо будет разбираться еще.
Спасибо за помощь ;)
Вообще, в пакетных менеджерах есть поиск пакетов по имени файлов. Возможно, вам надо было -dev версию найти и установить.
Точно, вы правы, все получилось, хотя и собиралось почти час, но зато "я снова дома". MC как-то не по душе был всегда поэтому через bash было как-то проще, а вот FAR я практически с момента его написания использовал. Супер.
Спасибо еще раз ;).
github.com/elfmz/far2l/issues/647
spdlog из зависимостей убран! Если у вас раньше не собирался colorer, то сейчас должен собраться.
del
Можно ли будет собрать что-то вроде far2l-nox - чтобы поставить только консольную версия и не тащить на сервер ошметки десктопа?
@unxed
>>сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.
А вот как бы узнать - что именно исправлено?
Чтобы перенести изменения в kitty(https://github.com/cyd01/KiTTY) - уж больно удобна эта модификация.
О, если бы кто-то перенёс, это был бы огонь вообще! Там не исправлено, там добавлен кусок. Я готов комментировать добавленный код в телеграме https://t.me/unxed. Если в двух словах: у far2l есть свои собственные эскейп-последовательности, позволяющие передавать более подробную информацию о состоянии клавиатуры, чем стандартные. И они же позволяют передавать содержание буфера обмена.
Поддержка этих последовательностей лежит в модифицированной putty в файлах windows.c и terminal.c, ищите там по слову far2l — им помечены соответствующие куски кода.
Сишник я такой себе, поэтому код, может, не идеально красивый, но работает чудесно, никто пока не жаловался.
Понадобится ещё библиотека libb64 для кодирования-декодирования base64, в эскейп последователностях far2l именно в base64 все данные закодированы. Она там в комплекте у меня на гитхабе.
Вот тикет, где я начинал документировать расширения:
https://github.com/cyd01/KiTTY/issues/74
А вот файл, где сегодня появилась первая документация на протокол:
https://github.com/elfmz/far2l/blob/master/WinPort/FarTTY.h
похоже, получилось https://t.me/far2l_ru/1389
Сорри за некрофилию, я на днях буквально сделал труъ Monokai для Far Manager, причем даже в 16 цветах (или RGB, по выбору): https://github.com/joric/colorer-schemes
Ого, здорово! Кстати, поддержку RGB тем в far2l как раз недавно добавили!
Попросил автора far2l вашу тему импортировать, а там проблемки возникли. Вы не могли бы ответить ему на вопрос вот здесь, пожалуйста?
https://github.com/elfmz/far2l/issues/1396#issuecomment-1309498343
…символы рисования рамок показывались раздражающим «пунктиром».
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/d00/500/be0/d00500be056eac812f60238ceaa3230e.png)
У нас долго не получалось найти причину или подобрать настройки рендеринга, исправляющие этот бесячий баг…
Причина в том, что оригинальный (работающий прямо на железе) DOS имеет один пиксел пропусков между знакоместами. Но если засвечен крайний справа или снизу пиксел в знакоместе, то он автоматически клонируется в эту область. В итоге линии псевдографики пролонгируются, а аппаратные шрифты должны быть построены так, чтобы не затрагивать край знакоместа.
А DOS-то тут при чём, как и аппаратные шрифты?
При том, что классический рендеринг шрифтов TrueType, в котором нет такой фичи, как в DOS была, как раз и рождает дырки между символами псевдографики. В GNome Terminal / Konsole сделаны workaround'ы с рендерингом символов псевдографики вручную, а не из шрифтов, чтобы победить это. В far2l в итоге сделали так же.
Линукс-порт Far Manager: прогресс за 4 года