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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Файлы отсортированы по имени:  
_  
0123456abc  
0123456de  
12345  
123abc  
1bc  
abc  
bc  
 
(^abc$) сортирует:  
 
abc  
 _  
0123456abc  
0123456de  
12345  
123abc  
1bc  
bc  
 
(^\d+abc$) сортирует:  
 
0123456abc  
123abc  
 _  
0123456de  
12345  
1bc  
abc  
bc  
 
(^abc$)(^\d+abc$){?:%2%1} – не сортирует  
 
Видимо, я не понимаю чего то существенного.  

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



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

Цитата:
(^abc$)(^\d+abc$)

Да, нужно прочитать регэксп буквально, тогда будет более понятно...
Такой регэксп, в принципе, не найдет совпадений даже в мультистроковом режиме...
А это то, что Вам требуется:

Код:
(?:(^abc$)|(^\d+abc$)){?:%2%1}


Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 18:09 02-04-2016 | Исправлено: YuS_two, 18:11 02-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two
 
Большое спасибо за очень полезную информацию!
 
Однако у меня, увы, выражение в целом (?:(^abc$)|(^\d+abc$)){?:%2%1} ни чего не сортирует.
 
(?:(^abc$)|(^\d+abc$)) также как и (?:(^abc$)) сортируют вот так:
 
abc  
 _  
0123456abc  
0123456de  
12345  
123abc  
1bc  
bc  
 
а (^\d+abc$) сортирует так:
 
0123456abc  
123abc  
 _  
0123456de  
12345  
1bc  
abc  
bc  
 
 
 
Добавлено:
YuS_two
 
P.S. на всякий случай: дело касается применения нового расширения опции №4 (сортировка файлов в панели по подстроке, захваченной регэспом; порядок сортировки можно изменить, добавив в конец регэкспа конструкцию {?:...}, где вместо ... указываем порядок возврата захваченных групп, например {?:%3%2%1}) замечательного макроса Panel.CustomSortByName.lua, автор которого Alexyz21.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 19:47 02-04-2016 | Исправлено: Angel_Ka, 19:51 02-04-2016
Alexyz21

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
По F1 одна! страница текста о регэкспах - изучите внимательно, иначе вы зря тратите своё и наше время.  
 
Телепаю, что в последнем случае вы хотите этого: ^(\d+?)([a-z]+)${?:%2%1}

Всего записей: 1424 | Зарегистр. 16-06-2007 | Отправлено: 21:10 02-04-2016
Angel_Ka



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

Цитата:
По F1 одна! страница текста о регэкспах - изучите внимательно,

Внимательно перечитал трижды. И составил несколько работающих полезных для себя регулярок, и продолжаю эту практику дальше.
 
Теперь же всего лишь пытаюсь добиться положительного результата в применении последнего усовершенствования опции №4 Вашего великолепного, очень полезного сборного макроса. Но, видимо, что то всё ещё не просекаю. Мне представляется, что последовательность работающих непротиворечивых регэкспов должна была бы работать в указываемой очерёдности. Но пока что этого у меня не получается. Поодиночке регулярки работают, а вкупе — нет.  
 

Цитата:
^(\d+?)([a-z]+)${?:%2%1}
Большое спасибо за пример! Он хотя бы работает, в отличие от составленных мною. Однако и он сортирует не так как я ожидаю:
_  
12345  
abc  
0123456abc  
123abc  
bc  
1bc  
0123456de  
 
А мне в данном примере хотелось бы получить следующую сортировку:
 
0123456abc  
123abc  
abc  
 _  
0123456de  
12345  
1bc  
bc  
 
 

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
\d*?abc
 
Добавлено:

Цитата:
Мне представляется, что последовательность работающих непротиворечивых регэкспов должна была бы работать в указываемой очерёдности.

Нет! выше уже было дважды сказано - они либо работают одновременно, либо не работают вообще.

Всего записей: 1424 | Зарегистр. 16-06-2007 | Отправлено: 22:05 02-04-2016 | Исправлено: Alexyz21, 22:06 02-04-2016
Angel_Ka



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

Цитата:
\d*?abc

Да, то, что надо! Круто! То есть в данном случае с последовательностью двух регэкспов я перемудрил. БОЛЬШОЕ СПАСИБО за науку!

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если нужно, чтобы работала какая-либо часть, то используют знак альтернативы |, например (это|или_это), а (это или_это) означает, что должно быть и то и другое и пробел между ними.

Всего записей: 1424 | Зарегистр. 16-06-2007 | Отправлено: 22:13 02-04-2016
Angel_Ka



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

Цитата:
Цитата:
Мне представляется, что последовательность работающих непротиворечивых регэкспов должна была бы работать в указываемой очерёдности.
 
Нет! выше уже было дважды сказано - они либо работают одновременно, либо не работают вообще.

А вот над этим мне надо думать. Ещё раз БЛАГОДАРЮ ВАС за наставления!

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если мы пишем (шаб1) (шаб2) (шаб3) это значит что поднимутся вверх только те имена, которые содержат все 3 шаба и пробелы их отделяющие, а не по выбору. Если группа может отсутствовать, то пишем (шаб)? Конструкция {?:%2%1} предназначена для перестановки групп местами и, соответственно, изменения порядка сортировки.

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Благодарю Вас за настойчивые разъяснения! Думаю над ними и пробую составлять соответствующие им регулярные выражения как без, так и с применением конструкции {?:%2%1}. Постараюсь некоторое время Вам не докучать, буду накапливать опыт.  
ОЧЕНЬ БЛАГОДАРЕН Вам за помощь!

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
Знаете, как я проверил сортировку ваших файлов? - Открыл редактор, вставил скопированные здесь имена:
Код:
12345
abc
0123456abc
123abc
bc
1bc
0123456de
, запустил замену RESearch:

Код:
Search for:
^(.+)$                                                           [ \ ]
Replace with:
.close(h) end return x end fwrite("","Z:\\Temp\\1\\"..match(1)) [ / ]
[x] Regular expression        [ ] Several lines   [ ... ]
[ ] Case-sensitive
[ ] Reverse search            [ ] In selection only      [ RE Builder ]
[ ] Remove emptied lines
[ ] Remove not matched lines
[x] Evaluate as script:       FarLUA                      [ Editor ]
 
               { Replace } [ All ] [ Cancel ] [ Close ]    [ Presets ]

, где Replace with:
Код:
local function fwrite(s,f) s = s or "" local h,x = io.open(f,"wb"),nil if h then x=h:write(s); io.close(h) end return x end
fwrite("","Z:\\Temp\\1\\"..match(1))

Таким образом в папке Z:\Temp\1\ созданы все перечисленные файлы с 0 размером.
 
Добавлено:
Это я к чему? - вы можете скопировать имена файлов в текстовой файл и пробовать регулярки в нём, только использовать надо не RESearch, а родную фаровскую замену, либо LFSearch by Shmuel, в нём есть используемый в скрипте regex. Тренировка в редакторе удобна тем, что при поиске найденная подстрока подсвечивается и вам будет проще понять, как регекс работает.

Всего записей: 1424 | Зарегистр. 16-06-2007 | Отправлено: 23:31 02-04-2016 | Исправлено: Alexyz21, 23:33 02-04-2016
shmuz1

Редактировать | Цитировать | Сообщить модератору
Alexyz21
Ох и сложно вы создаёте файлы, плагин + скрипт для этого используете. Я (ради интереса) сделал проще:
 
1. Скопировал имена в редактор.
2. Сделал вертикальный блок нулевой ширины на 1-й верт. позиции, высота = кол-ву имён файлов
3. Впечатал echo .> перед именем 1-го файла, оно впечаталось во всех строках благодаря установленному скрипту scite_like.lua
4. Сохранил файл с расширением .bat
5. Вышел из редактора и запустил файл на исполнение.
 
Описывать это здесь у меня заняло минут 5, а сделать - полминуты.
 
Добавлено:
Однако этот способ не работает для имён с пробелами. Тогда делаем так:
3a. Впечатываем copy NUL "
3b. CtrlF7 - делаем замену .$ на $0"

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
shmuz1
 
Спасибо вам большое за ценные советы! Я даже сначала скопировал их себе в отдельные файлы. А уже потом попробовал их на практике — так мне легче их запоминать и осваивать.
 
Опробование регулярок в текстовом файле — очень хороший совет. И я впредь им часто буду пользоваться.  
 
При этом само по себе составление регулярных выражений теперь уже не представляет для меня непреодолимую преграду. Потихоньку продвигаюсь в этом направлении. А вот составить дееспособный пример из набора регэксов с применением конструкции {?:%2%1} у меня всё ни как не получается. Но, надеюсь, со временем освоить. Вижу в этом практический интерес.  
 
Добавлено:
И ещё есть у меня одна маленькая, и надеюсь временная, незадача с сайтом. Дело вот в чём. Мне казалось, что я приводил упрощённые нано-примеры, на которых тестирую работу макросов с реальными базами файлов. Но, пролистав два десятка страниц, понял, что либо их не приводил, либо они сгинули с последним сбоем на сервере руборда. Поэтому, во избежание искажённого доведения до вас информации, посчитал целесообразным привести упрощённый тест, с которым последнее время тренируюсь чаще всего. И всего то в нём 45 имён файлов. Однако запостить список мне не удалось. Ни непосредственно в текущем посте, ни под тегами more. Сайт подолгу висел, а потом скидывал отправку.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 00:41 03-04-2016
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz1
 
Красиво, а вот ещё полезные инструменты описаны - RegExpDebuggers.chm. Я их пробовал и оба очень удобны.
 
 
Добавлено:
Angel_Ka
 
При сбое 25.03.2015 страницы темы с 49 по 63 были утрачены. Так же был утрачен ещё и ряд других тем и полетели аккаунты многих людей. Сейчас идёт ремонт дисковой подсистемы т.к. именно её отказ и привёл к сбою.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 23651 | Зарегистр. 31-07-2002 | Отправлено: 00:57 03-04-2016
Alexyz21

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz1
RESearch у меня основной инструмент, равно как и скрипты в его замене. Поэтому этот подход на уровне рефлекса. fwrite() у меня в FAR вообще заглобалена, это тут я её расписывал, а так замена FarLUA _G.fwrite("",path..match(1)) и взлетело.

Всего записей: 1424 | Зарегистр. 16-06-2007 | Отправлено: 01:19 03-04-2016 | Исправлено: Alexyz21, 01:24 03-04-2016
YuS_two



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

Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 01:52 03-04-2016
Angel_Ka



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_two
Понятно. Спасибо большое за совет! Буду учить матчасть.

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 01:59 03-04-2016
Alexyz21

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Angel_Ka
Пофиксил, изменил синтаксис с {?:%1} на {!:$1}, обновил.

Всего записей: 1424 | Зарегистр. 16-06-2007 | Отправлено: 03:28 03-04-2016
Angel_Ka



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

Цитата:
обновил

БОЛЬШОЕ СПАСИБО! И у меня наконец-то получилось сделать сортировку с указанием её порядка.
Список:
_  
0123456abc  
0123456de  
12345  
123abc  
1bc  
abc  
bc  
 
сортируется регексом ^(\d+?a)|(\abc+)${!:$2$1} так как мне надо, и в том порядке как мне надо:
abc  
0123456abc  
123abc  
 _  
0123456de  
12345  
1bc  
bc  
 
и порядок этот я могу произвольно изменить ^(\d+?a)|(\abc+)${!:$1$2}:
0123456abc
123abc    
abc      
 _        
0123456de
12345    
1bc      
bc        
 
Просто изумительно практично! Дальше, полагаю, дело у меня пойдёт уже проще.  
Ещё раз БЛАГОДАРЮ Вас за прекрасный макрос пользовательской сортировки Panel.CustomSortByName.lua!

Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 10:36 03-04-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