Макрос добавляет в диалог поиска файлов (AltF7) немного "искусственного интеллекта". Функции:
1. автоматическое добавление "*" к маске
2. автоматическое закрытие регэкспа с установкой регистронезависимого поиска (/.../i) Подробнее:
1)
В версиях фара вплоть до 1.71 alpha 4 build 2368 при поиске файлов действовало следующее правило:
если маска, введенная пользователем, не содержит
символов '?', '*' и '.', то FAR к введенному
пользователем значению добавляет символ '*' и
производит поиск по измененной маске.
Теперь же этот "искусственный интеллект" убран.
Предлагаемый макрос возвращает старое привычное поведение, т.е. если в строке отсутствуют ".", "*", "?" - добавляет в конец "*".
2)
В фаре версии 2.0 стало возможным использовать вместо масок регэкспы - т.е. регулярные выражения (RE)
Регулярное выражение должно быть заключено в слэши ("/"), после закрывающего слэша следуют параметры.
По умолчанию регистр символов различается, а чтобы искать регистронезависимо надо использовать параметр "i"
Предлагаемый здесь макрос в случае отсутствия закрывающего слэша - добавляет его в конец строки вместе с параметром - "/i"
Макрос назначается на Enter в области Dialog.
Срабатывает только на Enter - т.е. CtrlEnter, хоткеи, и мышиные клики позволяют обойти его и произвести поиск без "искусственного интеллекта" Предполагается английский язык интерфейса.
В макросе используются константы, которые можно импортировать в реестр из файла MacroConsts.reg(прилагается).
(Отличается от имеющегося тут только тем, что добавлена ветка для Far 2). зачёркнутое неактуально для новой версии (см. ниже)
Update
В [FindFile]Enter.reg.zip (выше) содержится старая версия макроса.
Предлагаю обновлённый вариант
Помимо прочих изменений:
*не зависит от языка
*MacroConsts.reg теперь в дистрибутиве фара: Addons\Macros\MacroConsts.reg
wolf wrote:Спасибо за макрос, только я его себе перевесил на CtrlEnter - от "строгого" поиска тоже есть польза.
Даже с моим макросом "строгий" поиск можно вызвать по AltF либо нажав на кнопку [ Find ] мышью.
А то ведь CtrlEnter - это уже две клавиши... Как по мне - весь смысл теряется. И не лучше уж тогда привыкнуть к новому поиску и вручную добавлять * в конец строки, чем учиться в разных случаях нажимать то Enter, то CtrlEnter?
Andrey Budko wrote:Можно сделать универсальнее:
Про SetValue не понял.
P.S. Улучшения можете сразу постить. Я добавлю в исходное сообщение.
Last edited by John Doe on Mon 07 Jul, 2008 13:31, edited 2 times in total.
Обновил макрос - теперь учитываются регэкспы.
Добавилось новое правило "искуственного интеллекта": в случае регэкспа нет необходимости указывать закрывающий слэш - макрос сам добавляет его в конец строки вместе с параметром - "i"
(По-умолчанию в регэкспах регистр букв имеет значение, а i включает регистронезависимый поиск.)
в рег-файле в sequence наблюдаем
"?"
а надо похоже
\"?\"
PS. все равно не взлетает макрос импортирован, в macro browser sequence заполнен... фары 1.75 и 2.0 последние, интерфейс английский. где-то в sequence ошибка?
Похоже на правду (сам не пробовал т.к. себе уже починил)
Однако,надо бы учесть, что в архиве отсутствует MacroConsts.reg и у пользователей оно скорее всего не взлетит