Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)

Модерирует : gyra, Maz

Maz (15-01-2020 17:38): FAR Manager (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Предыдущие топики:  1 2 3 4
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
Архив всех предыдущих ночных сборок FAR
Last release на github - собирается практически сразу (в течение получаса) после каждого коммита.
 
Общие сведения о совместимости FAR и плагинов
 
Можно воспользоваться одной из пользовательских сборок FAR Manager
Вопросы, касающиеся сборок, следует задавать непосредственно их авторам, а не на официальном форуме.
 
Где взять дополнительные плагины, скрипты и макросы?
Плагринг. В настоящее время большинство авторов (возможно, уже и все) выкладывают плагины здесь. Кроме плагинов здесь появляется всё относящиеся к FAR: дополнения, консольные шрифты, скрипты и пр.
Анонсы плагинов на официальном форуме. Даже если автор не выкладывает по каким-либо причинам плагин на плагринге, он может дать анонс в этой теме.
Полезные скрипты и макросы.
 
Инструкции по сборке ФАРа из исходников
Набор для самостоятельной сборки ФАРа
Как собрать FAR самостоятельно (старая инструкция)  
 
Ссылки на устаревшие версии
Выдержка из Far Manager Site and Forum ‹ FAQ :
Отличия FAR 3 от FAR 2
Отличия FAR 2 от FAR 1.7
 
Примечания
 
* 13 декабря 2008 г. произошло переименование веток: ANSI-ветка 1.71 превратилась в 1.75, а Unicode-ветка получила номер версии 2.0 (вместо 1.80). Т.е. версии 1.хх это ANSI ("старый" FAR), а версии 2.хх – Unicode ("новый" FAR). Эти ветки сильно различаются по способу взаимодействия с плагинами и системой!
* При обновлении ANSI-ветки 1.хх более старые версии плагинов могут работать в более новом FAR, но более новые плагины в большинстве случаев требуют обновления FAR (см. документацию).
* Unicode-плагины в ANSI-версии FAR не работают – у них иной способ взаимодействия (API) с Far.exe, поэтому даже не пытайтесь их использовать в FAR версии ниже 1.80.
* При обновлении Unicode-версии FAR 1.80/2.0/3.0 обращайте внимание на номер сборки: следует обязательно обновить все плагины для сборок 677/680/684, иначе они не будут работать. ANSI-плагины (кроме тех, которые работают в редакторе) можно применять в Unicode-версии FAR, в меню плагинов (вызываемом по F11) они будут помечены значком [A] справа от их имени. Unicode-плагины в FAR 1.80/2.x/3.х никаким значком после имени не помечаются.
* Unicode-версия FAR 1.80/2.x/3.х требует как минимум Windows 2000, т.е. она работает только в Windows 2000/XP/2003/Vista/2008/7/8/10.
* Плагины от FAR 2 несовместимы с FAR 3 и не запустятся.
* В FAR 3 выборочно могут работать плагины от FAR 1, однако не стоит брать от FAR 1 плагины для редактора или работающие с дисками: первые портят текст в Юникоде, вторые – файловую систему.
* В любом случае разрядность плагинов должна совпадать с разрядностью FAR, иначе плагин не будет загружен.
* Блондинку на скриншоте зовут Tommie Jo.

 
Принципиальные различия между hard link, symlink и junction
Как устранить взаимное влияние запущенных копий FAR в памяти
Как запустить Lua/MoonScript из FAR
Как правильно добавить в программу нужную DLL (или иную зависимость), чтобы при обновлении ОС или иных программ она не перестала работать
Патч для ansi-плагинов для хранения настроек плагинов в папке профиля, а не в реестре
Как распаковать UUE/XXE файлы патчей и использовать их?
 
ВНИМАНИЕ!
 
Правильное (корректное) завершение Far: всегда завершайте сеанс работы с Far по F10! Подробнее на форуме - Различие выхода из Far по F10 и крестиком
 
Общие правила обращения за помощью
  1. Решаете задачу самостоятельно, при необходимости ищете ответы в теме и других источниках. Предварительное изучение документации обязательно!
  2. Если ваших знаний не хватает, то задаёте вопрос в форуме и строго следуете инструкциям тех людей, которые вам помогают.
  3. Если решить задачу, следуя пунктам 1 и 2, не удалось, то задаёте вопрос разработчикам.

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

Всего записей: 38741 | Зарегистр. 26-02-2002 | Отправлено: 18:55 23-11-2017 | Исправлено: Victor_VG, 10:00 09-09-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
Уже видел и оценил её идею Тут я сначала (пока не было доки) словил сообщение об ошибке в eval т.к. не знал про обёртку, а после наваял демку-тест - вдруг машина где начудила?  
 
Да, короче чем lua:mf.printconsole("Test") не придумать!
 
LuaMacro TestKit v1.1 - Add test for win.WriteConsole() and mf.printconsole(). Файл test5.lua:

Цитата:
local TX = "Test win.WriteConsole()";
mf.printconsole("");
mf.printconsole("DEMO:");
mf.printconsole("-----");
mf.printconsole("");
panel.GetUserScreen() win.WriteConsole(TX) panel.SetUserScreen();
mf.printconsole("");
mf.printconsole("Test mf.printconsole()")
mf.printconsole("");
Keys("CtrlO");

выведет в консоль такую картинку:
 
   
 
- это тест и демо одновременно - так задумано.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 23:46 25-07-2019 | Исправлено: Victor_VG, 00:18 26-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Про идею более подробно, плз, и почему только сейчас.

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 09:04 26-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Да там всё просто - в M#3548 добавилась функа win.WriteConsole() - выводит юникодную строку в консоль фара. Но её нужно оборачивать в panel.GetUserScreen() ..... panel.SetUserScreen() или вернёт nil - индикатор ошибки, а поначалу как только появилась я этого не знал и просто попытался выполнить lua:win.WriteConsole(Text) справедливо получив ошибку. После из доки увидел - нужна обёртка - сделал и тест прошёл.
 
А mf.printconsole() это та же самая win.WriteConsole() но уже обёрнутая в коде api.lua в panel.GetUserScreen() ..... panel.SetUserScreen() плюс небольшой вспомогательный код помещающий аргумент в win.WriteConsole() в нужной форме - ставим в код mf.printconsole(<строка>) и видим картинку как в моём примере. Семь строк - зато как красиво!

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 11:41 26-07-2019 | Исправлено: Victor_VG, 11:45 26-07-2019
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
По мелочи: 1>E:\Music\FarManager\plugins\luamacro\luafar\win.c(759,77): warning C4267:  'function': conversion from 'size_t' to 'DWORD', possible loss of data
VS 2019 16.2.0, собирал Release | x64

Всего записей: 4802 | Зарегистр. 07-07-2006 | Отправлено: 01:17 28-07-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
skipik
Спасибо, исправлено.

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 02:06 28-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ещё немного примеров для mf.printconsole():
 
mf.printconsole(); -- выводим пустую строку
mf.printconsole("DEMO:");-- выводим одну строку текста
mf.printconsole("-----"); -- выводим одну строку текста
mf.printconsole(); -- выводим пустую строку
mf.printconsole("Test mf.printconsole()"); -- выводим одну строку текста
mf.printconsole(); -- выводим пустую строку
mf.printconsole("Test\nmf.printconsole()") -- выводим две строки текста
mf.printconsole(); -- выводим пустую строку
mf.printconsole(" Test\n\n  mf.printconsole()") -- выводим несколько строк текста с отступом вправо
mf.printconsole(); -- выводим пустую строку
Keys("CtrlO"); -- гасим экран чтобы увидеть вывод

 
выглядеть будет так:
 
 

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 21:53 28-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG, ликуете по поводу освоения оператора print()?

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 07:56 29-07-2019
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Жалко, что вы убрали из скрипта сравнения Ctrl+Alt+C возможность сравнить не только файлы, но и каталоги: на обеих панелях курсор на "..", Ctrl+Alt+C. Скрипт ругается, что оба файлы нулевого размера. Я таким методом часто каталоги сравнивал. Можно что-то поправить, чтоб всё работало, как сейчас, но ещё и каталоги разрешило сравнивать?

Всего записей: 4802 | Зарегистр. 07-07-2006 | Отправлено: 17:26 30-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для сравнения каталогов есть более совершенные инструменты - Advanced Compare, Deep Compare. Обновил, добавил сравнение папок.

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 21:47 30-07-2019 | Исправлено: Alexyz21, 21:58 30-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
skipik
 
Можно и IntCheker задействовать: APanel Ctrl+ -> PPanel Ctrl+ -> IntChecker -> Сравнение панелей по SHA-256/SHA-512 . Медленнее чем АС, зато точно. Я сам так сравниваю.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 22:00 30-07-2019
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Victor_VG
В принципе согласен, просто привык делать одним методом, но сейчас освоил AdvCmpEx и пришёл к выводу, что это даже удобнее.

Всего записей: 4802 | Зарегистр. 07-07-2006 | Отправлено: 22:06 30-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
skipik
 
Я сейчас глянул версию 1.6 скрипта - сравнение каталогов добавлено, но до того выводится диалог с путями и кучей подтверждений следом дабы не скучно было.. И мне это нужно как ... ракете тормоза. Ладно, придётся выкроить время и написать свой скрипт без "развлечений"...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 22:19 30-07-2019
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Меня не раздражает. Главное, что работает.
 
Alexyz21

Всего записей: 4802 | Зарегистр. 07-07-2006 | Отправлено: 23:29 30-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG

Цитата:
до того выводится диалог с путями и кучей подтверждений

Не надо ля-ля ) Диалог с путями спеециально для тех кто в танке и сравнивает файл с самим же собой, или пребывает в каматозе и не знает что с чем сравнивает ))) Диалог с опциями выводится только для папок, может нужен иной режим сравнения. Диалог с путями ремится элементарно двумя минусами, даже только вчера освоивший print(), справится )))
 
skipik
ещё раз обновил, в диалоге путей вместо центрирования сделал выключку влево, номер версии не менял.

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 00:11 31-07-2019 | Исправлено: Alexyz21, 01:24 31-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21

Цитата:
Не надо ля-ля ) Диалог с путями спеециально для тех кто в танке и сравнивает файл с самим же собой, или пребывает в каматозе и не знает что с чем сравнивает

А то что сам плагин при сравнении каталогов выводит диалог с путями к ним и опциями сравнения этого нет? Или ты решил довести свой скрипт до абсурда? Я уже принял решение и пишу свой.

Цитата:
только вчера освоивший print()

пополни словарь: end, stop, pause
 
Кстати, насчёт сравнивает файл с самим собой твой скрипт в версиях 1.1 -  1.6 при
 
 (APanel.Selected==APanel.Current ~= PPanel.Selected==PPanel.Current) & (SHA-256(APanel.Selected) ~= SHA-256(PPanel.Selected))  
 
по твоей же собственной логике как раз в танке ибо для него - ПОМЕЧЕННЫЕ ФАЙЛЫ НА РАЗНЫХ ПАНЕЛЯХ ЭТО ВСЕГДА ОДИН И ТОТ ЖЕ ФАЙЛ ИБО ОНИ ПОМЕЧЕНЫ , но это не баг ибо ... и снова Здорово!. Скучно...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 01:54 31-07-2019 | Исправлено: Victor_VG, 02:12 31-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG

Цитата:
Я уже принял решение и пишу свой

Напишите, напишите - посмОтрите сколько придётся приседать из-за разных диалогов копирования/извлечения при разных сочетаниях плагиновых панелей, если конечно не ограничиваться парой-тройкой.  
 

Цитата:
(APanel.Selected==APanel.Current ~= PPanel.Selected==PPanel.Current) & (SHA-256(APanel.Selected) ~= SHA-256(PPanel.Selected))

Вот зачем умничать? 500 раз уже сказал - при 1 выделенном файле на активной панели, он сравнивается с файлом под курсором и плевать, что там на пассивной панели. И доступно объяснил почему так, а не иначе - потому что только ССЗБ будет топтать клаву выделяя/снимая выделение по 1-му файлу на каждой панели, вместо того, чтобы просто выбирать их курсором. А если пар файлов для сравнения с десяток? Ставить/снимать выделение на каждом файле каждой пары вместо того, чтобы просто передвигать курсор? - Маразм. А если пассивная панель погашена, то как вы будете сравнивать 2 файла на панели? - выделяя оба? - Можно, но зачем, когда 1 можно выделить, а другой не выделять, просто передвигать курсор по версиям файла.
 
UP. Обновил - 1.7 - добавил сравнение выделенных по 1 файлу на каждой из панелей + теперь должны правильно обрабатываться линки.
 

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 08:37 31-07-2019 | Исправлено: Alexyz21, 13:32 31-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Повторю снова - любое решение рассчитанное на искусственно ограниченный набор сценариев применимо только для них.  
 
Я выше приводил реальный пример когда с прибора идёт непрерывный поток данных и нет возможности двигать курсор ("топтать клаву") с частой их обновления, но это приходится делать в твоей реализации. И это не единичный сценарий, а типовой когда данных много и их пометка используется для облегчения работы с ними.  
 
Твой алгоритм применим только при условиях:
 
1) сравниваемые файлы видны на панели;
2) на панели видны полные имена файлов;
3) имена файлов уникальны и не могут быть перепутаны ("различимы и не имеют подобий в написании");
4) APanel.Current и PPanel.Current указывают именно те файлы которые мы хотим сравнить;

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

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 13:31 31-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
п.4
Цитата:
сравнивает случайные файлы

Ложь - он сравнивает то, что приказал сравнить юзер.
 
п.1-3 это ограничения любого файлового менеджера, не только FAR, причём здесь скрипт - непонятно.
 
Но хотелку сравнения выделенного по 1 файлу на каждой панели добавил, здоровье дороже
 
Хорошо бы баг со сравнением 2-x файлов 0-го размера в плагине VisualCompare исправить.

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 13:43 31-07-2019 | Исправлено: Alexyz21, 13:57 31-07-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21

Цитата:
Хорошо бы баг со сравнением файлов 0-го размера в плагине VisualCompare исправить.

Достаточно в его алгоритм вставить проверку длин аргументов вида  
 
If size(arg1)==0 or size(arg2)==0 Then skip Else compare End
 
Исходный код VisualCompare открыт, можешь сам глянуть на ГитХабе, но последний коммит в этом репозитории был 21.01.2018, а исходники VC более двух лет не изменялись...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33119 | Зарегистр. 31-07-2002 | Отправлено: 14:29 31-07-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
возможно всё не так просто - см. костыль в скрипте - win.GetFileInfo(f).FileSize для линков возвращает 0 (в ХПСП3 по крайней мере) , пришлось читать 1 байт, чтобы удостовериться, что файл не пуст.
 
Можно попробовать так:
VisCompFiles.pas:1092

Код:
    if optCompareAsText and ((optTextFileSizeLimit = 0) or ((AItem.Size[0] < optTextFileSizeLimit) and (AItem.Size[1] < optTextFileSizeLimit))) then

на

Код:
    if optCompareAsText and ((optTextFileSizeLimit = 0) or ((AItem.Size[0] > 0) and (AItem.Size[0] < optTextFileSizeLimit) and (AItem.Size[1] > 0) and (AItem.Size[1] < optTextFileSizeLimit))) then

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 14:47 31-07-2019 | Исправлено: Alexyz21, 15:51 31-07-2019
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)
Maz (15-01-2020 17:38): FAR Manager (часть 6)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru