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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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, не удалось, то задаёте вопрос разработчикам.

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BOOM!.lua v1.1 теперь для выделения используется панельное API, что позволило правильно обрабатывать ситуации с активной сортировкой элементов панели.

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 15:23 14-08-2019
wseventeen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ImageView 3.46.8 pcx/psd должны работать.

Всего записей: 1415 | Зарегистр. 20-12-2007 | Отправлено: 15:57 14-08-2019
citPiks



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

Цитата:
теперь для выделения используется панельное API, что позволило правильно обрабатывать ситуации с активной сортировкой элементов панели

Смутно представляю себе о чём именно идёт речь про "ситуации с активной сортировкой элементов панели", но поскольку Вы констатируете улучшение, то могу это только приветствовать! Тем более, что беглая проверка показала, что макрос работает отлично. Очередное спасибо!
 
И у меня к Вам ещё просьба:
Ранее shmuz подсказывал:
Цитата:
Как показать наличие BOM и его тип в контент-колонке? Ответ такой: с помощью макросов или плагинов. Готовых таких я не знаю, но написать должно быть не особо сложно.
Ознакомившись с тем, что представляет собой контент-колонка, я понял, что это в принципе классная опция Фара. Однако написать соответствующий макрос для меня даже близко не по зубам.
Не могли бы Вы написать такой макрос? И м.б. для этого пригодится следующая информация:
Цитата:
Shmuel Tue 16 Dec 2014 13:55
Для желающих поэкспериментировать со своими контент-плагинами без необходимости в компиляции, то-есть на Lua, прилагаю заготовку

 
Дополнено:
И вот ещё информация:
Цитата:
John Doe Thu 08 Aug, 2019 14:28
Вероятно не все ещё заметили, но теперь возможности контент-плагинов доступны и в luamacro, т.е. плагин не нужен, достаточно макроса

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 16:27 14-08-2019 | Исправлено: citPiks, 16:41 14-08-2019
Alexyz21



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

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 16:41 14-08-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Спасибо за очередное улучшение!  
Осознал, и впредь буду тестировать и на бранчах тоже.

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 16:58 14-08-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wseventeen
 
Проверил - ошибка распознания .pcx/.psd (тикет #133) исправлена. Потому я SV_Review.lua v1.2 флаг-выключатель макроса добавил и для графики поставил его в off.

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

Всего записей: 33205 | Зарегистр. 31-07-2002 | Отправлено: 17:04 14-08-2019
shmuz

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

Цитата:
 Shmuel Tue 16 Dec 2014 13:55
Для желающих поэкспериментировать со своими контент-плагинами без необходимости в компиляции, то-есть на Lua, прилагаю заготовку
 

Сейчас заготовка уже не нужна, поскольку данная функциональность встроена в LuaMacro.
API и пример использования есть в macroapi_manual.ru.chm.

Всего записей: 1861 | Зарегистр. 09-03-2012 | Отправлено: 17:22 14-08-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
 
c0BOM.lua
 
F9 - File panel modes - добавляем в любой режим, либо создаём новый, взяв за основу какой-либо из уже имеющихся. Например для Wide
Код:
Column types
N,S,<BOM>
Column widths
0,6,4

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 17:34 14-08-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Спасибо за разъяснение! Посмотрел в macroapi_manual.ru.chm и попробовал приведённый там пример контент-колонки <text> — очень даже практичный пример, на мой взгляд.  
 
Alexyz21

Цитата:
c0BOM.lua

Великолепно реализовано! Не сомневался, что у Вас отлично получится, но не ожидал, что так быстро и точь в точь то, что надо! Большое спасибо!

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 17:57 14-08-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks, много мёда ))) По манере общаться сразу видно чиновника.

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 18:00 14-08-2019
citPiks



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

Цитата:
По манере общаться сразу видно чиновника

Не чиновника, но близко — руководителя средней руки. Что же, буду знать как воспринимается это со стороны. Но с бомами Вам я просто обязан. Очень-очень выручили.
 
И если есть время и возможность, то подскажите, пожалуйста, о следующем.  
В Настройке режимов просмотра панели файлов предусмотрен тип колонки "F — количество потоков". О каких потоках идёт речь, не об ADS ли? И если да, то нельзя ли создать контент-колонку по типу колонки <text>, показывающую начало ADS-информации?

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 18:33 14-08-2019 | Исправлено: citPiks, 18:38 14-08-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Alexyz21
 
Кстати, из серии "мечта ..." - при правке SV_Review.lua у меня мелькнула идея - вместо флага-выключателя (добавлен в v1.2):

Код:
-- Open current graphics or video file at active panel in to Review.
--
-- v1.0, Initial version
-- VictorVG, 14.08.2019 01:07:44 +0300
-- v1.1, Refactoring
-- VictorVG, 14.08.2019 06:41:47 +0300
-- 1.2, Add on/off flags (bulean): on=true , off=nil  
-- VictorVG, 14.08.2019 16:43:23 +0300
 
local RVId="0364224C-A21A-42ED-95FD-34189BA4B204"
local MaskG,MaskV="/.+\\.(pcx|psd)/i","/.+\\.(3gp|avi|flv|m2t|mkv|mov|mp4|mp4v|mp4a|mpg|mpeg|mts|ts|wbem|wmv)/i"
local FG,FV=nil,true
 
Macro{
  id="12FA2EAA-E5B0-4F4B-8C02-E8B008490D47";
  area="Shell Viewer";
  key="F3 Enter NumEnter MsM1Click";
  description="Review: Open graphics files";
  condition=function() return (FG and Plugin.Exist(RVId) and mf.fmatch(APanel.Current,MaskG)==1) end;
  action=function()
  Far.DisableHistory(-1) Plugin.Command(RVId,APanel.Current);
end;
}
 
Macro{
  id="3A7772FB-E33D-4239-A67F-4B4800787C16";
  area="Shell";
  key="F3 CtrlPgDn";
  description="Review: Open video files";
  priority=60;
  condition=function() return (FV and Plugin.Exist(RVId) and mf.fmatch(APanel.Current,MaskV)==1) end;
  action=function()
  Far.DisableHistory(-1) Plugin.Command(RVId,APanel.Current);
end;
}

делать проверку по версии плагина FarImageView. Грубо говоря так:

Код:
local PlgId=GUID
local ver="<version>" -- версия для сравнения
 
{macro
.....
condition=function() return ((Plugin.Version(PlgId) < Ver) and Plugin.Exist(RVId) and mf.fmatch(APanel.Current,MaskV)==1) end;
....
end
}

смысл - мы знаем версии которые не работают с форматами .PCX/.PSD - это все версии ниже 3.46.8.4363 и проверяем версию установленного плагина на "Если больше, то зовём его, иначе альтернативный". Алгоритм разбора известен, но скорость его работы не самая высокая - в библиотеках NSIS есть несколько подобных макросов и функций, например в библиотеке FileFunc есть макрос ${GetFileVersion} "[Executable]" $var который возвращает в $var результат в формате Major.Minor.Buld.Revision или ставит флаг ошибки при неудаче. Или зови встроенную функцию GetDllVersion() и сам парси её вывод (пример их хелпа NSIS):

Код:
GetDllVersion "$INSTDIR\MyDLL.dll" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $0 "$R2.$R3.$R4.$R5"

- работа с обоими не всегда удобна, особенно если надо сравнить версии - этого в NSIS нет. Но у NSIS есть плагины и они сильно упрощают жизнь. Например xtInfo умеет сравнивать строки версий (xtInfo::CompareVersion) и выдавать ответ больше / меньше или равно, а дальше делай что нужно. И главное плагины работают на порядки быстрее, и потому и в случае с этой идеей мне подумалось, что функция типа Plugin.GetVersion(GUID|DllName) возвращающая номер версии плагина из GlobalInfo -> VersionInfo окажется достаточно востребованной т.к. позволит реализовать в скриптах зависящее от версии плагина ветвление и оптимизацию их алгоритмов.  
 
Честно говоря я пока не представляю с какой стороны подступится к сей задаче, просто высказываю мысли в слух для оценки - "А есть ли смысл с этим возится?".


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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG, не понял в чём проблема - попросить добавить возврат версии по запросу из скрипта и всё, если я правильно понял. Если возвращает nil, то версия старая, либо обновлять, либо использовать альтернативу. На крайний случай, как костыль, можно получать версию из F11 - плагин - F3 - Version. - Не взлетит, к сожалению поля диалога напрямую не видны.

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 20:44 14-08-2019 | Исправлено: Alexyz21, 20:51 14-08-2019
shmuz

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

Цитата:
Не взлетит, к сожалению поля диалога напрямую не видны.

Dlg.GetValue(9)
 
Добавлено:
Но, конечно, более правильно добыть версию через API (которое имеется).

Всего записей: 1861 | Зарегистр. 09-03-2012 | Отправлено: 21:00 14-08-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dlg.GetValue(9), да, только что увидел. Вижу и через API, но посложнее, конечно.

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 21:11 14-08-2019 | Исправлено: Alexyz21, 21:44 14-08-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Alexyz21
 
Ага, направление понял. Повожусь. Интересно что в итоге выйдет?
 
Добавлено:
Alexyz21
 
Здорово! Кусок работы сделан. Тот пример с плагином xtInfo что я приводил конечно не самый удобный - ответы плагина идут в инверсной логике, но там хоть сравнительно просто:  
 
xtInfo::CompareVersion $var1 $var2
IntCmp $res $const goto_lt, goto_eq, goto_gt

 
главное в адресах переходов не запутаться. Особенно с моей привычкой к переходам по смещению. Я потому когда-то приятеля попросил калькулятор переходов написать дав ему алгоритм их подсчёта. И пользуюсь им до сих пор - вручную считать сто раз нечистую силу помянешь т.к. счётчик адреса считает не от окончания, а от начала текущего оператора. В итоге переход через строку +2, а через две уже +4.

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

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



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

Код:
local function PluginVer(PluginName)
  local PVer
  for _,p in ipairs(far.GetPlugins()) do
    local Info = far.GetPluginInformation(p)
    if Info.GInfo.Title:upper()==PluginName:upper() then PVer=Info.GInfo.Version break end
  end
  return PVer
end

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 22:12 14-08-2019 | Исправлено: Alexyz21, 22:13 14-08-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Это делается прямее, с использованием far.FindPlugin().

Всего записей: 1861 | Зарегистр. 09-03-2012 | Отправлено: 23:01 14-08-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
shmuz
 
Я так и сделал, но явно напутал с передачей хендла - получаю nil от far.FindPlugin(). Вот с чем я сейчас вожусь то же, включая оба тест-файла в XXE распакует винрар или 7-зип с плагинами декодера.


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

Всего записей: 33205 | Зарегистр. 31-07-2002 | Отправлено: 03:55 15-08-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Имхо не взлетает потому, что far.FindPlugin() возвращает хэндл только загруженного (активного) плагина, т.е. если плаг не выводит картинку, то он не загружен и хэндла его мы не получим, получим nil. Поэтому нужно искать в таблице найденных плагинов, а не запущенных.

Всего записей: 3484 | Зарегистр. 16-06-2007 | Отправлено: 10:19 15-08-2019 | Исправлено: Alexyz21, 10:19 15-08-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