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

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

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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
А, так Вы имеете ввиду желательность опционального автоматического дополнения меню выбора макроса нативными фаровскими и плагинными командами, соответствующими ключу вызова макроса для соответствующей макрообласти! Да, это было бы весьма удобно и полезно. А то сейчас приходится вручную это делать. И, скорее всего, что-то да упустишь.

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 16:03 21-09-2019
Alexyz21



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

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 16:22 21-09-2019 | Исправлено: Alexyz21, 16:23 21-09-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хитро навороченный тогда должен быть у шортката кондиционер то

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 16:39 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А то! - В голову как надует витиеватую логику, потом только доктора помогут
 
Например, раз
Код:
Plugin.Call(LFS_Guid,"own","editor","replace",Data)
с заполненным диалогом из Data не взлетает (хотя по логике работать должно), но взлетает
Код:
Plugin.Call(LFS_Guid,"own","editor","replace")
, выводя диалог с последними использовавшимися значениями, то можно заюзать эвент с кондиционером, разрешающим заполнение полей диалога только в нашем макросе. Витиевато, но работать должно.

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 16:42 21-09-2019 | Исправлено: Alexyz21, 17:11 21-09-2019
citPiks



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

Цитата:
Код:
Plugin.Call(LFS_Guid,"own","editor","replace",Data)
с заполненным диалогом из Data не взлетает

А у меня макрос с этой строкой:

Код:
local LFS_Guid="8E11EA75-0303-4374-AC60-D1E38F865449";
Macro {
  description="тест: пуск плагина Lfs (Alexyz21)";
  area="editor"; key="F1";
  flags="";
  id="F6FEEC8A-D01B-4C4E-8A32-CEA4390F5295";
  action=function()
    Plugin.Call(LFS_Guid,"own","editor","replace",Data)
  end;
}

вызывает диалог плагина, в поле "Искать:" которого выводится слово, в котором находится курсор редактора Far`а.

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 17:36 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Диалог выводится потому, что Data==nil, т.е. отсутствует.

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 17:45 21-09-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А я предполагал, что в этом случае должна бы была ошибка выводится. А во втором приведённом Вами случае, — нет. Как же тогда их различать?

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 17:52 21-09-2019
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Вот простейший проверенный пример поиска парного закрывающего тэга. Если захотите, можете взять за основу для более сложных действий.
Пример

Всего записей: 1339 | Зарегистр. 09-03-2012 | Отправлено: 18:15 21-09-2019 | Исправлено: shmuz, 18:15 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
Шмуэль сделал очень грамотно - крайние аргументы функций равные nil можно не указывать - удобно.
 
Если же в нашем случае таблицу Data заполнить согласно доки, то ожидается, что вызов плагина выведет диалог с установленными из Data значениями.  
 
Не знаю как правильно устанавливать значения из выпадающих списков, lib regex в данном случае, сделал так:

Код:
local list=hDlg:send(F.DM_GETDLGITEM,15,nil)
list[6].SelectIndex=3
list[10]="PCRE"                      
hDlg:send(F.DM_SETDLGITEM,15,list)

, возможно извратно, но работает.
 
Добавлено:
shmuz
Увидел, спасибо.

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 18:17 21-09-2019 | Исправлено: Alexyz21, 18:25 21-09-2019
shmuz

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

Цитата:
А я предполагал, что в этом случае должна бы была ошибка выводится. А во втором приведённом Вами случае, — нет. Как же тогда их различать?

Аргумент Plugin.Call()  не может быть пустой таблицей, отсюда и ошибка. Разрешённые типы описаны в документации.
 
 
Добавлено:
Alexyz21

Цитата:
Do not put, т.е. кладём в LuaSearch\Scripts? А звать его как?

Кладём куда угодно, но не в Macros\scripts. Звать как угодно.
Полный путь файла с именем указываем в макросе - там же написано:
local lfsearch_script = [[ ...... ]]

Всего записей: 1339 | Зарегистр. 09-03-2012 | Отправлено: 18:24 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
как между скриптами передавать данные - только через внешний файл? Они же из разных вселенных. Через переменные окружения не разгонишься, а через файл медленно.

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 18:44 21-09-2019 | Исправлено: Alexyz21, 18:52 21-09-2019
shmuz

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

Цитата:
как между скриптами передавать данные - только через внешний файл? Они же из разных вселенных.

Через файл тоже можно, хотя обычно можно попроще.
1. Из макроса в плагин данные можно передать аргументами Plugin.(Sync)Call
2. Из плагина в макрос данные могут быть переданы возвращаемыми значениями Plugin.(Sync)Call
3. Также из плагина можно вызвать far.MacroPost и far.MacroExecute.

Всего записей: 1339 | Зарегистр. 09-03-2012 | Отправлено: 19:02 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Может лучше Plugin.Call(LFS_Guid,"own","editor","replace",Data)  
 с заполненным диалогом из Data сделаете?
 
Пробую звать так:
Plugin.Call(LFS_Guid,"code",Code,MyTable)
 
как отлавливать MyTable в Code?

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 19:05 21-09-2019 | Исправлено: Alexyz21, 19:09 21-09-2019
shmuz

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

Цитата:
Может лучше Plugin.Call(LFS_Guid,"own","editor","replace",Data)  с заполненным диалогом из Data сделаете?

Маловероятно: и надобности не вижу, и времени нет.
Всё, что вам надо, можно сделать прямо в скрипте LF Search, а не передавать из LuaMacro.
 
Добавлено:

Цитата:
как отлавливать MyTable в Code?

Произвольная таблица не может быть аргументом Plugin.Call - читайте документацию. Только сегодня отвечал на этот вопрос citPiks'у - или чукча не читатель?
На сегодня всё.

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



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

Цитата:
надобности не вижу

Это очень логично аналогично передавать ему заполненный Data, как и в lfsearch, но если нет времени, то тут ничего не поделаешь.
 

Цитата:
можно сделать прямо в скрипте LF Search

Ок, попробую, спасибо за помощь, сам бы не победил.

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 19:16 21-09-2019
citPiks



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

Цитата:
Вот простейший проверенный пример

И я решил попробовать. Скопипастил макрос и в нём указал путь к скрипту:  
local lfsearch_script = [[C:\find_tags.lua]] и, соответственно, файл со скриптом  
положил в корень диска C:. Но после перезагрузки макросов данный макрос не срабатывает.
Т.е. при вызове его из редактора по ShiftF1 ничего не происходит.  
 
Удвоил макрос — меню выбора выводится:
 

 
Что я мог в данном случае сделать не так?

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 20:09 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
там 2 макроса, верхний обычный, нижний LFS

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 20:28 21-09-2019
shmuz

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

Цитата:
как между скриптами передавать данные

На сегодня ещё не всё
 
Можно воспользоваться модулем сериализации (преобразования произвольных Lua-данных в строку). Если у вас такого модуля нет, можно взять из Интернета, либо вытащить из LuaMacro\api.lua.
Десериализация производится простым исполнением сериализованной строки как Lua-кода.
Таким образом можно передавать и таблицы, в том числе вложенные.
 
Модулем может пользоваться как LuaMacro, так и другие LuaFAR-плагины.
 
citPiks
Откройте в редакторе HTML-файл,содержащий тэги <div> и </div>. Там нажимайте ShiftF1.

Всего записей: 1339 | Зарегистр. 09-03-2012 | Отправлено: 20:36 21-09-2019
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Похоже есть баг - если выполняем из диалога, то переход выполняется правильно, курсор устанавливается после найденного при поиске вперед и перед найденным при поиске назад. Если же зовём lfsearch, то курсор устанавливается всегда после. Содержание полей в диалоге и Data идентичное. Экспериментировать можно прямо в открытом в редакторе скрипте на закомментированной строке. Курсор устанавливаем на буквы тега и жмём AltM, осуществляется переход в начало-конец тега.
 
Editor.TagSearch.lua

Всего записей: 2268 | Зарегистр. 16-06-2007 | Отправлено: 20:42 21-09-2019 | Исправлено: Alexyz21, 20:54 21-09-2019
citPiks



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

Цитата:
Откройте в редакторе HTML-файл,содержащий тэги <div> и </div>. Там нажимайте ShiftF1.

Так всё получилось. Спасибо!

Всего записей: 360 | Зарегистр. 26-06-2016 | Отправлено: 20:44 21-09-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru