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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

Maz



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

 
Предыдущие топики:  1 2 3 4 5  
 
Где взять последнюю версию?
На странице загрузки скачайте 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, не удалось, то задаёте вопрос разработчикам.

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

Всего записей: 37320 | Зарегистр. 26-02-2002 | Отправлено: 17:36 15-01-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как указать логин/пароль? Можно пример - пароль более 20 разных знаков, ввод в спепую - скис от мысли вводить его каждый раз )))
 
Нашёл, спасибо.

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 14:24 30-03-2020 | Исправлено: Alexyz21, 14:27 30-03-2020
Ariman_UA



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

Всего записей: 155 | Зарегистр. 12-09-2007 | Отправлено: 15:10 30-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ariman_UA
 
Согласен, да и с браузером при правке описаний релизов так проще.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29090 | Зарегистр. 31-07-2002 | Отправлено: 15:15 30-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ничего не получается, в браузере ткнул создать новый репозиторий (есть ещё один - клон репы Макса Руссова), появился far-scripts. На компе в папке с отобранными скриптами ввожу:

Код:
echo "# far-scripts" >> README.md
git init
git add README.md
git add *.lua
git add *.moon
git commit -m "first commit"
git remote add origin https://username:password@github.com/z0hm/far-scripts.git
git push -u origin master

 в ответ вижу:

Код:
C:\far-scripts>git push -u origin master
To https://github.com/z0hm/far-scripts.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://username:password@github.com/z0hm/far-scripts.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

- Что делать? Может имена с точками >1 не понимает? Например Panel.xxxx.lua
 
 
Заглянул в https://github.com/z0hm/far-plugins/blob/master/VisualCompare/VisCompMain.pas:218 и вижу:

Код:
if (AStr <> nil) and (AStr^ <> #0) then begin
        vStr1 := FarExpandFileNameEx(ExtractParamStr(AStr));
        vStr2 := FarExpandFileNameEx(ExtractParamStr(AStr));
 
        if (vStr1 <> '') and WinFileExists(vStr1) and (vStr2 <> '') and WinFileExists(vStr2) then
          CompareTexts(vStr1, vStr2)
        else
          CompareFolders2(vStr1, vStr2);
 
      end else
        CompareFolders2('', '');
 

- Это не наш баг с падением при сравнении 2-х файлов 0 длины? - Если я правильно понимаю этот код, то здесь при сравнении таких файлов мы уходим выполнять CompareFolders2(vStr1, vStr2); с последующим крэшем, потому как это файлы, а не папки.

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 15:42 30-03-2020 | Исправлено: Alexyz21, 16:28 30-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
На ГитХаб-е просто: создаём новый репозиторий в его Web мастере, а после git clone -  основная копия на сервере создаётся его средствами, а у нас локальная рабочая (клиентская). Сам так делаю и пока ошибок не возникало.

Цитата:
Это не наш баг с падением при сравнении 2-х файлов 0 длины

судя по алгоритму похоже. Тут по моему стоит добавить проверки:

Код:
if (vStr1 <> '') and (WinFileExists(vStr1) and WinFileSize > 0) and (vStr2 <> '') and (WinFileExists(vStr2) and WinFileSize > 0) else  
     If ((WinFileAttributes(vStr1) not 0x10) and (WinFileAttributes(vStr2) not 0x10))  
      then CompareFolders2(vStr1, vStr2); end  
       else
        CompareFolders2('', '');

что по идее должно предотвратить переход на неверную ветку алгоритма.


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29090 | Зарегистр. 31-07-2002 | Отправлено: 16:58 30-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Public scripts for Far Manager 3.0
 
таки смог затолкать на гитхаб )))

Код:
git init
git add README.md
git add *.lua
git add *.moon
git commit -m "first commit"
git remote add origin https://user:pass@github.com/z0hm/far-scripts.git
git remote set-url origin https://user:pass@github.com/z0hm/far-scripts.git
git push -u origin master

 
WinFileSize без аргумента??? И проверку на BOM'ы имхо стоит сделать - вдруг в файлах только по бому. Варианты бомов: 32LE '\255\254\0\0', 32BE '\0\0\254\255', 16LE '\255\254', 16BE '\254\255', UTF8 '\239\187\191'.
 

Код:
zero=(l==0 or l==3 and s==efbbbf or l==2 and s==fffe or l==2 and s==feff or l==4 and s==fffezzzz or l==4 and s=zzzzfeff)

 
 
Я не знаю современного Delphi, писал когда-то в юности на Borland Pascal 7.0 ))) Но (имхо) WinFileAttributes(vStr2) not 0x10 не взлетит - помимо атрибута directory наверняка будут и другие атрибуты.
 

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 17:32 30-03-2020 | Исправлено: Alexyz21, 18:23 30-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Файл нулевого размера только резервирует место и имя для объекта "файл" в пространстве файловой системы, а если в нём есть хоть бит данных, то он несёт и прикладную информацию.  
 
Поэтому при FileSize(filename) > 0 нет смысла в анализе содержимого файла в данном узле ветвления.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29090 | Зарегистр. 31-07-2002 | Отправлено: 18:09 30-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
WinFileSize > 0 <= аргумента нет, какого файла размер? Должно быть WinFileSize(vStr[12]) и выше написал определение zero-файла

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 18:18 30-03-2020 | Исправлено: Alexyz21, 18:19 30-03-2020
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alexyz21
Там вообще каша в голове, начнем с того, что NOT во всех языках - оператор унарный. Тут используется как бинарный. Это, видимо, каким-то образом должно работать.
Но только в отдельно взятой голове с маянезиком внутри.
У вменяемых людей это (Var and 0xNNNN) > 0 (или варианты)

Всего записей: 9956 | Зарегистр. 11-03-2002 | Отправлено: 18:34 30-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я ещё раньше имел дело с Паскаль - в начале 80-х и с тех пор его сильно не жалую (личное). Главное там нужно изменить алгоритм проверки на:

Код:
If (GetAttributes(name1) and 16) and (GetAttributes(name2) and 16) Then  
  If (FileSize(name1) == 0 or FileSize(name2) ==0) Then  
   Message(L'One or both file is empty. Comparation skip)
   Exit
  Else
   CompareFile(name1,name2)
  End
Else
  CompareDir(name1,name2)
End

обыкновенное "И" и любые иные биты маскируются нулями, а бит 5 даст значение FILE_ATTRIBUTE_DIRECTORY . Зачем усложнять простое?
 


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29090 | Зарегистр. 31-07-2002 | Отправлено: 18:37 30-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
and точно бинарная операция, а не логическая? - Может && должно быть, нет?  
 
В Panel.VisualCompare.lua сделано так:

Код:
    local function crash_protect(f)
      local zzzzfeff,fffezzzz,feff,fffe,efbbbf,zero = "\255\254\000\000","\000\000\254\255","\254\255","\255\254","\239\187\191",false
      if not win.GetFileInfo(f).FileAttributes:find("d") then
        local h=io.open(f,"rb")
        local s=h:read(4) or ""
        local l=string.len(s)
        if h then zero=(l==0 or l==3 and s==efbbbf or l==2 and (s==fffe or s==feff) or l==4 and (s==fffezzzz or s==zzzzfeff)) h:close() end
      end
      return zero
    end
    if crash_protect(AP) and crash_protect(PP)
    then
      local APlen = AP:len()-PP:len()
      far.Message("\nCrash protect!\n\nFiles have zero sizes or BOM only\n\n1st: "..PP..(APlen>0 and string.rep(" ",APlen) or "").."\n2nd: "..AP..(APlen<0 and string.rep(" ",-APlen) or ""),VC)
    else
      if APanel.Left
      then Plugin.Command(VisComp,'"'..AP..'" "'..PP..'"')
      else Plugin.Command(VisComp,'"'..PP..'" "'..AP..'"') Keys("Tab")
      end
    end
 

 
 
Какой командой гита можно из удалённого репозитория получить указанный файл (восстановить его) в локальном репозитории?

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 19:12 30-03-2020 | Исправлено: Alexyz21, 19:30 30-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
В данной проверке применима только булева логика и бинарные операции т.е. таблицы истинности И, ИЛИ, XOR выглядят просто:
 
И (&) Q = X1&X2  
 
X1 X2 Q    
0 0 0    
0 1 0    
1 0 0    
1 1 1

 
ИЛИ (^) Q = X1^ X2
 
X1 X2 Q    
0 0 0    
1 0 1    
0 1 1    
1 1 1

 
ИСКЛЮЧАЕЩЕЕ ИЛИ (XOR, SUM2) Q = (NOT X1) ^ (NOT X2)
 
X1 X2 Q    
0 0 0    
1 0 1    
0 1 1    
1 1 0

 
тогда при поразрядном И двух полиномов - полинома атрибутов и маски 0х00000010 на выходе будет 0х00000010 только если бит 5 будет содержать 1. В всех иных случаях Q = 0х00000000. Т.е. замаскировали не нужные нам биты. Обычная операция которую с минимальной задержкой распространения сигнала аппаратно можно реализовать на 64 логических элементах 2И и двух ступенчатом каскаде из 4 элементов 8ИЛИ в первой ступени и выходном 4ИЛИ второй ступени. Типичная задача для современных микросхем.
 
Думаю идея понятна.
 
Добавлено:
git checkout <filename> - восстановит файл из индекса по состоянию на момент его последней фиксации (коммита) в текущей ветке, либо git pull - обновит рабочую копию до состояния той же ветки в удалённом репозитории, а в случае конфликта git выведет сообщение о нём и прервёт обновление (git pull по своему действию аналогична последовательности команд git fetch для получения изменений, а затем git merge для их слияния с локальной рабочей копией).

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2667/C602J/16 GB REG ECC DDR3-1866/GTX 1660, i7-2600/z68/16 Gb DDR3-1600/GTX 1060 3Gb

Всего записей: 29090 | Зарегистр. 31-07-2002 | Отправлено: 22:39 30-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
То что добавлено, то полезно, остальное вода.
 
Shmuel, как вызвать far.RecursiveSearch() в скрипте, запущенном lfjit.exe?

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 23:09 30-03-2020
shmuz

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

Цитата:
как вызвать far.RecursiveSearch() в скрипте, запущенном lfjit.exe

Никак. Эта функция доступна только плагинам Фара.
Вместо неё можно использовать библиотеки с подобной функциональностью (наиболее известная lfs), либо FFI, либо io.popen("dir /b /s").

Всего записей: 1491 | Зарегистр. 09-03-2012 | Отправлено: 23:36 30-03-2020
Alexyz21



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

Код:
 
local Key="CtrlShiftF3"
Macro {
  description = Description; area = "Shell Menu"; key = Key.." Enter MsLClick";
  condition = function(key) return Area.Shell and key==Key or Area.Menu and Menu.Id==MenuGuid and Menu.Value:match(Description) and (key=="Enter" or key=="MsLClick") end;
 

Почему не работает
Код:
Area.Shell and key==Key
? - Жму в панелях CtrlShiftF3 и ничего. Клики и Энтер из меню работают. Если убрать кондишн и заменить на key="CtrlShiftF3", то работает, но клики и энтеры в меню работают не так как нужно (не вызывают диалог сортировки).
 
На CtrlShiftF3 висит сразу несколько макросов сортировок в панелях и я ожидаю меню при нажатии CtrlShiftF3, но его нет.

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 11:58 01-04-2020 | Исправлено: Alexyz21, 12:10 01-04-2020
shmuz

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

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

У макросов сортировки, видимо, выставлен priority > 50.

Всего записей: 1491 | Зарегистр. 09-03-2012 | Отправлено: 12:17 01-04-2020
Alexyz21



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

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 12:24 01-04-2020
shmuz

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

Всего записей: 1491 | Зарегистр. 09-03-2012 | Отправлено: 12:27 01-04-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ок, буду искать.
 
MultiPanel.lua перекрывает.

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 12:30 01-04-2020 | Исправлено: Alexyz21, 20:56 01-04-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
5569. Подозреваю баг в функции
Код:
colordata = editor.GetColor(EditorId, StringNumber, ColorItem)

 
Открываю в редакторе текстовой файл в сохранённой в истории позиции курсора, скажем на 1500 строке. Вызываю Editor.CyrSpaceHighlighting.moon, читаю ошибку - attempt to index local 'colordata' (a nil value), это 108-я строка, код:
Подробнее...
т.е.
Код:
colordata = editor.GetColor(EditorId, StringNumber, ColorItem)
вернул не таблицу, а nil. Если же вызвать макрос в начале файла, то работает - колорер не успевает докрасить до 1500 строки? - Так страница раскрашена, может до конца файла не успел докрасить, но разве это вообще правильно привязывать возврат таблицы к колореру? - Перекрасит, будут возвращены другие значения.

Всего записей: 2596 | Зарегистр. 16-06-2007 | Отправлено: 12:31 02-04-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » 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