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

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

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

Maz (23-11-2017 18:57): FAR Manager (часть 5)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

AlViS



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

 
Предыдущие топики:  1 2 3
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
 
Общие сведения о совместимости 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, иначе плагин не будет загружен.

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

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

Всего записей: 2396 | Зарегистр. 03-01-2002 | Отправлено: 11:10 07-11-2015 | Исправлено: Victor_VG, 04:33 26-09-2017
shmuz

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

Цитата:
Легко для того, кто знает. Подскажите, плиз, как — а может быть и сдюжится. Если и не сразу, то со временем.  

В описании функции LoadCustomSortMode есть ссылка на описание структуры SortingPanelItem. В тех макросах, которыми вы недавно занимались, использовалось поле FileName этой структуры, но в ней есть и другие поля, в том числе FileAttributes.
 

Всего записей: 1125 | Зарегистр. 09-03-2012 | Отправлено: 00:20 22-02-2016 | Исправлено: shmuz, 00:21 22-02-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Благодарю за подсказку! Она существенно облегчила дело.
 
Долго подбирал функцию и на текущий момент в макросе-примере FileName поменял на FileAttributes, вместо C.wcslen подставил bit.band(tonumber, и макрос работает. Правда, с небольшими нюансами, но надеюсь и их преодолеть.  
 
Во всяком случае, сортировку папок-симлинков и объектов с атрибутом "только для чтения", новым макросом уже делать удобнее, чем двумя старыми.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 04:02 22-02-2016
VictorVG2

Редактировать | Цитировать | Сообщить модератору
Уточнение к Поиск файла по его описанию

Цитата:
ccaid
 
"...штатный поиск, вроде бы, не умеет рекэкспы..."

в масках файлов умеет, смотрите Help:

Цитата:
В масках можно использовать регулярные выражения, при этом текст
регулярного выражения должен быть окружён символами "/".

Отправлено: 12:08 23-02-2016
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VictorVG2
Насколько я понял, в маске надо указать просто descript.ion, а в строке поиска уже регулярное выражение, например, стол|стул|диван. Если точно известно, что искать, то можно и без регулярного выражения.

Всего записей: 1125 | Зарегистр. 09-03-2012 | Отправлено: 14:25 23-02-2016
VictorVG2

Редактировать | Цитировать | Сообщить модератору
shmuz
 
Ну, коли ему просто конкретное имя искать, то вообще там просто. А в строке, да регулярку чтобы не набирать кучу вариантов. Ну, забыли про это ребята, с кем не бывает?

Отправлено: 14:49 23-02-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Макрос сортировки по атрибутам вообще, о котором шла речь раньше, очень полезен. Однако он имеет, как я уже отмечал, и некоторые нюансы. В частности, по атрибуту "только для чтения" он хорошо сортирует в банальной ситуации, когда в папке файлы помечены только данным атрибутом и атрибутом "архивный". Но когда там же находятся также файлы, помеченные вместе с тем атрибутами "временный" или "точка повторного анализа" и т.п., то итоговая сортировка получается не очень удобная.  
Поэтому вот составил макрос специально для выборки файлов только с атрибутом ro.
 

Код:
-- Загрузить сортировку
local ModeNumber = 109
local ffi = require "ffi"
local C = ffi.C
 
Panel.LoadCustomSortMode (ModeNumber,
  {
Description="отсортировать файлы по атриб&уту 'только для чтения'";
    Compare = function(p1, p2)
      local l1, l2 = tonumber(p1.FileAttributes)/2, tonumber(p2.FileAttributes)/2
      local l3, l4 = math.floor(l1), math.floor(l2)
      local l5, l6 = l1 - l3, l2 - l4
        return l5<l6 and -1 or l5>l6 and  1 or 0
    end;
    Indicator = "Qq";
  })
 
-- Установить заданную пользовательскую сортировку в активной панели
Macro {
description="отсортировать файлы с атрибутом ro";
  area="Shell"; key="CtrlShift7";
  action=function()
    Panel.SetCustomSortMode(ModeNumber,0)
  end;
}
 

Работа данного макроса основана на том, что атрибут "только для чтения" (0x01) в отличие от других нечётный. А вот как дифференцировать другие атрибуты, ума не приложу. Может быть что то посоветуете?

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 15:17 23-02-2016
Alexyz21

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

Цитата:
Работа данного макроса основана на том, что атрибут "только для чтения" (0x01) в отличие от других нечётный.

Ну... можно и так, но зачем? Почему не использовать битовую маску?

Всего записей: 1939 | Зарегистр. 16-06-2007 | Отправлено: 15:32 23-02-2016
Angel_Ka



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

Цитата:
Почему не использовать битовую маску?

А это как? В функции Compare из Panel.LoadCustomSortMode я не вижу такого способа. Но и не исключено, что это у меня зрение такое.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 16:09 23-02-2016
Alexyz21

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

Код:
-- Загрузить сортировку  
 local ModeNumber = 200  
 local ffi = require "ffi"  
 local C = ffi.C  
   
 Panel.LoadCustomSortMode (ModeNumber,  
   {  
 Description="отсортировать файлы по атриб&уту 'только для чтения'";  
     Compare = function(p1,p2,opt)  
       local l1,l2 = bit.band(p1.FileAttributes,C.FILE_ATTRIBUTE_READONLY),bit.band(p2.FileAttributes,C.FILE_ATTRIBUTE_READONLY)
       return l1<l2 and -1 or l2>l1 and  1 or 0
     end;  
     Indicator = "Qq";  
   })  
   
 -- Установить заданную пользовательскую сортировку в активной панели  
 Macro {  
 description="отсортировать файлы с атрибутом ro";  
   area="Shell"; key="CtrlShift7";  
   action=function()  
     Panel.SetCustomSortMode(ModeNumber,0)  
   end;  
 }  
   

Всего записей: 1939 | Зарегистр. 16-06-2007 | Отправлено: 16:34 23-02-2016
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
Вот простой вариант для вашего случая. Благодаря tonumber он должен работать и на x86, и на x64.
Если нужно сортировать по другому атрибуту, замените FILE_ATTRIBUTE_READONLY на имя другого атрибута.

Код:
    Compare = function(p1, p2)
      local l1 = bit.band(tonumber(p1.FileAttributes), C.FILE_ATTRIBUTE_READONLY)
      local l2 = bit.band(tonumber(p2.FileAttributes), C.FILE_ATTRIBUTE_READONLY)
      return l1 - l2
    end;
 

Всего записей: 1125 | Зарегистр. 09-03-2012 | Отправлено: 16:55 23-02-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
shmuz
Благодарю Вас, уважаемые! И ведь предполагал это, и ведь пытался даже, но, почему-то без префикса "C.", и в инете ковырялся, но не нашёл, и вот сам себя убедил, что это не работает.  
 
Извините меня за беспокойство. И ещё раз БОЛЬШОЕ СПАСИБО за отзывчивость!  

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 19:35 23-02-2016
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
C.FILE_ATTRIBUTE_READONLY это просто для читаемости и понимаемости кода. Если вы поставите вместо этого просто 1, будет работать ничуть не хуже.

Всего записей: 1125 | Зарегистр. 09-03-2012 | Отправлено: 19:51 23-02-2016
Alexyz21

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
Когда занимаешься написанием скриптов время от времени по необходимости, то очень помогает контекстный поиск в папке со скриптами и LuaMacro - подсмотреть, как кто-то уже делал. Я использую RESearch.Grep.lua - по AltG перескакиваю в место найденного.

Всего записей: 1939 | Зарегистр. 16-06-2007 | Отправлено: 20:26 23-02-2016
Angel_Ka



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

Цитата:
Если вы поставите вместо этого просто 1, будет работать ничуть не хуже.

Огромное спасибо за подсказку! Это чрезвычайно удобно! Получается, что так можно указывать десятичные коды не только отдельных атрибутов, но и их сочетаний!
 
А где об этом почитать можно было бы? В энциклопедии же этого нету.
 
 
Добавлено:
Alexyz21
Своей подсказкой даже опередили мой вопрос! Большое спасибо!

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 20:48 23-02-2016
Alexyz21

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

Цитата:
Это чрезвычайно удобно!

Это плохая практика - если константы "переедут" на другие числовые значения, то такой код сломается и править его будет мутно.  

Всего записей: 1939 | Зарегистр. 16-06-2007 | Отправлено: 20:59 23-02-2016
shmuz

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

Цитата:
Это чрезвычайно удобно! Получается, что так можно указывать десятичные коды не только отдельных атрибутов, но и их сочетаний!  
Это может быть удобно иногда, но код становится непонятным, появляются так называемые "магические числа". А сочетания обычно делаются функцией bit.bor.

Цитата:
А где об этом почитать можно было бы? В энциклопедии же этого нету.
Энциклопедия предполагает, что читатель знает основы программирования на языке C. macroapi_manual предполагает, что читатель в достаточной мере знает язык Lua.
 
 

Всего записей: 1125 | Зарегистр. 09-03-2012 | Отправлено: 21:00 23-02-2016
Angel_Ka



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

Цитата:
Это плохая практика - если константы "переедут" на другие числовые значения, то такой код сломается и править его будет мутно.


Цитата:
Это может быть удобно иногда, но код становится непонятным.
 
Спасибо за предупреждения! При этом, имхо, коды нескольких чаще всего применяемых атрибутов и запомнить не грех, и их таблицу под рукой держать тоже полезно. Ну а в макросах, разумеется, комментарии делать надо не лениться.

Цитата:
появляются так называемые "магические числа" ...
Поищу в инете что такое "магические числа", и про функцию bit.bor тоже.

Цитата:
Энциклопедия предполагает, что читатель знает основы программирования на языке C. macroapi_manual предполагает, что читатель в достаточной мере знает язык Lua.
Полагаю, что не один я, а определённая часть пользователей Фара находится лишь в стадии освоения, да и приобщать молодёжь к Фару приходится весьма постепенно.

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

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 23:46 23-02-2016
Alexyz21

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

Цитата:
с интерактивным вводом кода атрибута или их сочетания

Это тот случай, когда удобнее сделать Custom Dialog с чекбоксами из диалога изменения атрибутов:
Код:
-------- Custom sort by attributes ---------
Attributes: _________________________
[ ] Read only             [ ] Sparse
[ ] Archive                 [ ] Temporary
[ ] Hidden                  [ ] Offline
[ ] System                 [ ] Reparse point
[ ] Compressed          [ ] Virtual
[ ] Encrypted              [ ] Integrity stream
[ ] Not indexed           [ ] No scrub data
-------------------------------------------------
             { Ok }        [ Cancel ]

Всего записей: 1939 | Зарегистр. 16-06-2007 | Отправлено: 01:07 24-02-2016 | Исправлено: Alexyz21, 01:14 24-02-2016
Angel_Ka



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

Цитата:
Это тот случай, когда удобнее сделать Custom Dialog с чекбоксами из диалога изменения атрибутов:

Очень надеюсь на то, что Вы покажете мне пример того, как это делается. Потому, что, во-первых, мне кажется это из области плагинов и слишком трудно для макросов. А во-вторых, и главным образом, этот вариант прельщает тем, что представляется мне наиболее соответствующим той цели сортировки по атрибутам, которую я преследую.  
Пояснить это можно на имеющихся уже примерах. Тот макрос, который удалось мне составить, вычленяет в одну группу все файлы, в которых присутствует атрибут ro, в т.ч. вкупе с другими атрибутами.  А макрос другой формы (ещё раз большое спасибо Вам и shmuz`у, что вы её мне показали!) вычленяет только файлы, в которых присутствует только атрибут ro.  
И судя по форме предлагаемого Вами Custom Dialog`а его посредством, если я правильно понимаю, можно задавать оба варианта сортировки. Что существенно предпочтительнее.  
 

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 03:09 24-02-2016 | Исправлено: Angel_Ka, 03:10 24-02-2016
VictorVG2

Редактировать | Цитировать | Сообщить модератору
Angel_Ka
 
Подсказка - стоит глянуть в сторону Editor_InsertMacro.lua из комплекта Набор макросов от SimSU v2014.10. Пример реализации меню в нём есть.

Отправлено: 03:47 24-02-2016
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 4)
Maz (23-11-2017 18:57): FAR Manager (часть 5)


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru