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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
shmuz

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

Цитата:
Дублирование кода не самый изящный вариант

Чтобы не дублировать, делается функция с параметром, делаются 3 макроса на один и тот же ключ, каждый макрос вызывает эту функцию с разным значением аргумента.

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 13:37 13-10-2019
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
https://github.com/VictorVG/PLG/releases/tag/IntCheckerLua-180

Всего записей: 4802 | Зарегистр. 07-07-2006 | Отправлено: 14:57 13-10-2019
citPiks



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

Цитата:
Чтобы не дублировать, делается функция ...

Большое спасибо  за подсказку! Немного подумал и всё получилось

Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 15:20 13-10-2019 | Исправлено: citPiks, 16:35 14-10-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
 
Да, случайно старая версия попала. Я ночью с путём ошибся. Сейчас переделаю. Спасибо за баг-репорт.
 
 
Добавлено:
В версии 1.8.1 должны уйти многие ошибки, в том числе и неверного ввода Target в мастере.  Там по умолчанию стоит Target == Display. Я сейчас её пишу. Заодно подумаю о возможности сделать проверку на "Запись возможна?". Есть одна идея, не уверен что сработает ибо читать и разбирать ACL достаточно затратно, а простая проверка chmod == 666 (rw-rw-rw-) ничего не даст, но посмотрим.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
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 | Отправлено: 15:21 13-10-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wseventeen
 
Такой кондишн не срабатывает:

Код:
condition = APanel.Current == "..";

 
А вот такой, да:

Код:
condition=function() return APanel.Current==".." end;

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



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

Цитата:
condition = APanel.Current == "..";  

Этот и не должен - условие проверено, но результат проверки утерян. В кондитион всегда используется логическая функция возвращающая true|failse. Он ждёт только логические ИСТИНА | ЛОЖЬ. Любые иные результаты либо игнорируются, либо вызывают ошибку.


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
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 | Отправлено: 17:33 14-10-2019
Alexyz21



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

Цитата:
Такой кондишн не срабатывает:  Код: condition = APanel.Current == "..";

Должен работать
 

Цитата:
Он ждёт только логические ИСТИНА | ЛОЖЬ. Любые иные результаты либо игнорируются, либо вызывают ошибку.

Это не так
 

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 18:33 14-10-2019 | Исправлено: Alexyz21, 18:43 14-10-2019
Victor_VG



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

Цитата:
Опциональное поле condition – функция.
 
Вызывается с одним аргументом: имя нажатого ключа. Для автостартующих макросов – вызывается без аргументов.  
Если возвращает false/nil/ничего, то макрос не исполняется.  
Если возвращает число, то это число используется вместо priority.  
При других значениях возврата (например, true) используется priority.

Смотрим данный случай что проверяется? Видим условие при соблюдении которого сработает макрос. Для данного случая выполнения условия "Вернуть логическое значение ИСТИНА/ЛОЖЬ" достаточно по смыслу цели его проверки - "выполнить / не запускать". Но, в иных случаях когда требуется изменение порядка запуска макросов функция condition() должна вернуть приоритет от 0 до 99, но об этом вроде всем известно.
 


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
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 | Отправлено: 18:59 14-10-2019
Alexyz21



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

Всего записей: 3469 | Зарегистр. 16-06-2007 | Отправлено: 20:23 14-10-2019
shmuz

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

Цитата:
Такой кондишн не срабатывает:

Код:
condition = APanel.Current == "..";

Вы это правильно подметили/обнаружили.
Сработать не может, т.к. condition должен быть функцией, а здесь булевая величина.
 
Добавлено:
В текущей реализации LuaMacro невалидный condition равноценен его отсутствию.

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 20:24 14-10-2019
citPiks



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
Очень благодарен Вам за разъяснение. Одно дело видеть действие на практике и совсем другое когда оно ещё и таким образом подкреплено.  
 
wseventeen сделал очень интересный и очень полезный макрос вывода пути в комстроку, редактор и диалог с настройкой предпочтений вставки обратного слеша.  
 
Однако, всё же для себя я сделал примитивный вариант макросов вывода пути с замыкающим бэкслешем внутри кавычек, за ними и без замыкающего бэкслеша. Лично мне так удобнее. А также и в случае изменений в коде Far`а мне будет сподручнее править их.

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



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
citPiks
 
Если бы ещё far.GetDirList() акроямя имён файлов ещё бы и их атрибуты читала. А то    
Цитата:
local dr,dl,s,a = far.GetDirList("C:\\TEMP\\1\\2"),{},"";
    for j = 1,#dr do
    dl[j] = dr[j].FileName
    a[j] = dr[j].FileAttributes
     s = s.." "..dl[j].." "..a[j].."\n";
    end;
    far.Show(s);

приходится дополнительно звать win.GetFileAttr():

Цитата:
    local s,dr,dl,da = "",far.GetDirList("\\\\SERVER\\share\\dir"),{};
    for j = 1,#dr do
    dl[j] = dr[j].FileName
    da = win.GetFileAttr(dr[j].FileName)
      s = s.." "..dl[j].." "..da.."\n";
    end;
    far.Show(s);

лишнее чтение с диска, а хотелось было бы его избежать. Ну да ладно, я сейчас её и заюзаю для версии 1.9.0 (?) чтобы добавить скрипту мозгов и упростить управление. Она даже удобнее чем mf.farttr() - возвращает текстовые аббревиатуры атрибутов, а значит та же da:find("d") выловит каталоги. Это надёжнее чем смотреть возврат IntChecker-а nil или хэш. Можно сразу пропустить каталоги не созерцая nil вместо цифири.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
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 | Отправлено: 02:54 15-10-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так, промежутка - функция DirList()

Код:
local function DirList(p)
local l,p0=""; if p:find("\\$") then p0=p:sub(0,-2) elseif p:find("/$") then p0=p:sub(0,-2) else p0=p end  
if not win.GetFileAttr(p0):find("d") then l=p0:sub(mf.rindex(p0,"\\")+2) else do local dr,dl,k=far.GetDirList(p0),{}
for k=1,#dr do dl[k]=dr[k].FileName; if not win.GetFileAttr(dr[k].FileName):find("d") then j="" else j="\\" end;
l=l..dl[k]:sub(#p0+2)..j.."\n" end end end return mf.trim(l) end;

Принимает на входе один параметр - UNC путь каталогу или файлу, причём в нём может бить и ошибка пользователя в виде конечного "/" или "\" в пути к файлам - сама исправит;
 
Возвращает листинг каталогов с относительными путями от указанного каталога и ниже по одной строке на запись. Каталоги маркируются "\" в конце имени.
 
Пример вызова:
 
far.Show(DirList("\\\\SERVER\\share\\dir\\subdir\\"))
 
результат будет на экране. Немного чёрной магии, но работает. ЧТД.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
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 | Отправлено: 20:34 15-10-2019 | Исправлено: Victor_VG, 23:17 15-10-2019
ndch

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Накопилась пара вопросов по NetBox (тот что в дистрибе фара).
 
Ситуация 1: есть webdav (яндекс-диск, если это важно) "в корне" которого "лежит файл" размером 9 гиг.
Как создать "папку" test#1 и переместить в ней вышеупомянутый файл ?
Без передачи самих данных (содержимого файлов) - чтобы многогиговые файлы не ворочать по медленной линии.
 
Ситуация 2: есть webdav, вот с такой структурой:
/test#0/file1_0gb
/test#1/file1_1gb
/test#2/file1_2gb
/test#3/file1_3gb
/test#4/file1_4gb
/test#5/file1_5gb
Как создать "папку" test#all и переместить в неё все вышеупомянутые папки с файлами (с более-менее сохранением дерева) ?
В частности чтобы в результате действий существовал /test#all/test#5/file1_5gb
Опять, же, без передачи самих данных (содержимого файлов) - чтобы многогиговые файлы не ворочать по медленной линии.

Всего записей: 6475 | Зарегистр. 31-08-2008 | Отправлено: 11:28 16-10-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ndch
 
Если на ЯД не поменяли настройки, то можно воспользоваться вот таким XML (я его им когда-то отсылал так как у них на странице был не рабочий вариант, они сказали что мол заменили код на присланный мной и исправили ошибки, но изменений так не внесли и проема настроек у пользователей осталась):
 
YD (WebDAV).netbox

Код:
<?xml version="1.0" encoding="UTF-8"?>
<NetBox version="2.1">
    <Sessions>
        <Session name="MYLOGIN@webdav.yandex.ru">
            <Version>2.4.2</Version>
            <HostName>webdav.yandex.ru</HostName>
            <PortNumber>443</PortNumber>
            <UserName>MYLOGIN</UserName>
            <FSProtocol>WebDAV</FSProtocol>
            <RemoteDirectory>/</RemoteDirectory>
            <UpdateDirectories>No</UpdateDirectories>
            <CacheDirectories>No</CacheDirectories>
            <CacheDirectoryChanges>No</CacheDirectoryChanges>
            <LookupUserGroups2>0</LookupUserGroups2>
            <SFTPMaxVersion>0</SFTPMaxVersion>
            <Ftps>2</Ftps>
            <CodePage></CodePage>
            <LoginType>1</LoginType>
            <Password>MYPASSWORD</Password>
        </Session>
    </Sessions>
</NetBox>
 

код сохраняем как *.netbox, после копируем этот файл на панель плагина с импортом сессии в базу, а после вписываем в настройки сессии свои логин и пароль и пробуем соединится.
 
Можно попробовать перекинуть файлы между каталогами в режиме "псевдо FXP" открыв на обеих панелях этот сервер и скопировав данные с одной панели на другую. Но результат будет зависеть от реализации конкретного сервера т.к. режим FXP (расширение протокола FTP) - прямое копирование данных между парой удалённых FTP серверов без их передачи на управляющую машину, для WebDAV всё таки не родной режим, хотя идея этого искусственного приёма и похожа на FXP. Вполне вероятно, что на сервере такие операции будут заблокированы или может потребоваться через браузер зайти в аккаунт и из него выполнить нужные действия. FTP/SFTP/FTPS нонче не в моде т.к.  пользователь минует просмотр рекламы, капчи и прочие WWW плюшки, а как же доход?

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
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 | Отправлено: 12:30 16-10-2019
ndch

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

Цитата:
Если на ЯД не поменяли настройки

Объясните причём тут аккаунт ?
Я интересовался про оперирование файлами.
 

Цитата:
Можно попробовать... режим FXP ... для WebDAV всё таки не родной режим

Т.е. просто полагаете ?
 
В cyberduck работает как драг-н-дроп (папок с файлами) , там и переименование (единичного файла), а в фаре (точнее в нетбоксе) - толком ни то, ни другое не работает (нужно проявить навыки эквилибристики). Почему ?

Всего записей: 6475 | Зарегистр. 31-08-2008 | Отправлено: 09:27 17-10-2019
novice2



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

Цитата:
 Почему ?

Это вопрос к автору плагина. Его на этом форуме скорее всего нет.

Всего записей: 1045 | Зарегистр. 29-10-2001 | Отправлено: 11:03 17-10-2019
ndch

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

Цитата:
Его на этом форуме скорее всего нет.

Где он есть ?
 
И казалось бы, причём тут автор, если плаг включен в дистриб, а кроме того
https://github.com/michaellukashov/Far-NetBox/releases
"NetBox 2.4.3.512 09.07.2017
@michaellukashov michaellukashov released this on 10 Jul 2017"
 
, при этом:
NetBox - О программе  
NetBox: SFTP/FTP/FTPS/SCP/WebDAV client for FAR3
Version 2.4.5 build 531

Всего записей: 6475 | Зарегистр. 31-08-2008 | Отправлено: 11:43 17-10-2019 | Исправлено: ndch, 11:48 17-10-2019
shmuz

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

Цитата:
Где он есть ?  

Теоретически, должен быть на гитхабе.

Цитата:
И казалось бы, причём тут автор, если плаг включен в дистриб.

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

Всего записей: 1856 | Зарегистр. 09-03-2012 | Отправлено: 11:51 17-10-2019
ndch

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

Цитата:
У немногих активных на данный момент разработчиков FarGroup, нет времени взять на себя поддержку этого (весьма непростого) плагина.
Ну, это ожидаемо. Жаль, конечно. Стало быть есть повод обратить внимание на альтернативу.

Всего записей: 6475 | Зарегистр. 31-08-2008 | Отправлено: 12:04 17-10-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