View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003132 | Far Manager | Fast Find | public | 2015-12-14 17:50 | 2016-09-22 17:47 |
Reporter | Cavaler | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | always |
Status | new | Resolution | open | ||
Summary | 0003132: Научить быстрый поиск искать не только с начала файла | ||||
Description | Предлагается научить быстрый поиск искать введенный текст не с начала имени файла, если файла с такой строкой в начале нет (то есть если текущий вариант ничего не нашел). Приложен патч с опциональной реализацией такой фичи. Rationale: В моем личном опыте постоянно приходится использовать быструю навигацию в каталоге, где куча файлов (или подкаталогов) гначинаются с одной и то же строки, типа такого: nav_addinfo nav_alarms2 nav_alerts nav_anchor_watch ... и так 45 каталогов. Или например в каталоге с альбомами одной группы: 1970 - Jesus Christ Superstar 1981 - Cats 1987 - The Phantom of the Opera В таких случаях текущая раелизация малопригодна. | ||||
Tags | No tags attached. | ||||
Build | |||||
|
fast_find_patch.patch (2,908 bytes)
Index: unicode_far/config.cpp =================================================================== --- unicode_far/config.cpp (revision 13585) +++ unicode_far/config.cpp (working copy) @@ -188,6 +188,7 @@ AutoUpdateLimitItem->Indent(4); AutoUpdateTextItem->Indent(4); Builder.AddCheckbox(MConfigAutoUpdateRemoteDrive, AutoUpdateRemoteDrive); + Builder.AddCheckbox(MFastFindSubstring, FastFindSubstring); Builder.AddSeparator(); Builder.AddCheckbox(MConfigShowColumns, ShowColumnTitles); @@ -1744,6 +1745,7 @@ {FSSF_PRIVATE, NKeySystem,L"AllCtrlAltShiftRule", OPT_DEF(AllCtrlAltShiftRule, 0x0000FFFF)}, {FSSF_PRIVATE, NKeySystem,L"AutoSaveSetup", OPT_DEF(AutoSaveSetup, false)}, {FSSF_PRIVATE, NKeySystem,L"AutoUpdateRemoteDrive", OPT_DEF(AutoUpdateRemoteDrive, true)}, + {FSSF_PRIVATE, NKeySystem,L"FastFindSubstring", OPT_DEF(FastFindSubstring, false)}, {FSSF_PRIVATE, NKeySystem,L"BoxSymbols", OPT_DEF(strBoxSymbols, DefaultBoxSymbols)}, {FSSF_PRIVATE, NKeySystem,L"CASRule", OPT_DEF(CASRule, -1)}, {FSSF_PRIVATE, NKeySystem,L"CloseCDGate", OPT_DEF(CloseCDGate, true)}, Index: unicode_far/config.hpp =================================================================== --- unicode_far/config.hpp (revision 13585) +++ unicode_far/config.hpp (working copy) @@ -686,6 +686,7 @@ // выше этого количество автоматически не обновлять панели. IntOption AutoUpdateLimit; BoolOption AutoUpdateRemoteDrive; + BoolOption FastFindSubstring; StringOption strLanguage; BoolOption SetIcon; Index: unicode_far/farlang.templ.m4 =================================================================== --- unicode_far/farlang.templ.m4 (revision 13585) +++ unicode_far/farlang.templ.m4 (working copy) @@ -2130,6 +2130,18 @@ "Auto-Aggiorna &Unità Di Rete" "Автооновлення м&ережевих дисків" +MFastFindSubstring +"Б&ыстрый поиск не с начала имени" +"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" +upd:"F&ast find not from name start" + MConfigShowColumns "Показывать &заголовки колонок" "Show &column titles" Index: unicode_far/filelist.cpp =================================================================== --- unicode_far/filelist.cpp (revision 13585) +++ unicode_far/filelist.cpp (working copy) @@ -3467,6 +3467,11 @@ } } + if (Global->Opt->FastFindSubstring && !Name.empty() && (Name[0] != '*')) + { + return FindPartName(L"*" + Name, Next, Direct); + } + return FALSE; #else // Mantis_698 |
|
Может я чего не понял, но если в начале поставить * то ведь ищет по всему имени, не? Некоторые пользователи ставят макрос, который автоматически вбивает *. |
|
Без макроса каждый раз вбивать в начало * неудобно, а макросы писать умеют далеко не все. |
|
Макрос можно положить в дистрибутив. |
|
А главное, то, что я предлагаю - слегка отличается в поведении. Поиск в первую очередь с начала имени, и только если не нашлось - с середины. Как такое сделать макросом - я не представляю. |
|
|
|
Повторюсь, функциональносто у макроса, добавляющего звездочку, хуже. То, что я написал - в первую очередь ищет с начала имени, а если уж не нашлось - то с середины. Это оказалось (ну лично мне) очень-очень удобно. |
|
Вы о каком именно макросе? |
|
О вышеприведенном. Все, что он делает - это при нажатии например AltA в строку поиска добавляет "*a", а не просто "a". Разве нет? |
|
нет, он делает именно то, что вы просите. |
|
А, ну да, не порсто звездочку добавляет. Но если по первой букве что-то нашлось, а я продолжаю печатать и не находится - то уже ничего не добавляет. Fail. |
|
Поясните каково же в таком случае желаемое поведение. P.S. Я лично не против патча, и лишь хотел продемонстрировать, что возможности макросов больше, чем может показаться. (Хотя в данном случае код макроса не слишком прямолинеен, ввиду 0003268) |
|
Желаемое поведение таково. Если есть файлы с именами, начинающимися с введенной строки - позиционироваться на них. А если их нет - то та тех, где введенная строка есть хотя бы в середине имени. Ctrl-Enter перебирает и те, и те. Так, например, зайтя в \Windows, и начав набирать "temp", я попадаю на каталог Temp, и только нажав Ctrl_Enter - на CbsTemp. |
|
Уловил. Если хочется найти "CbsTemp", а на панели присутствует например "twain_32", то макрос не сработает. А вот это кстати может быть нежелательно.. |
|
|
|
Такой вариант вроде бы работает. Выложи тогда куда-нибудь этот полет фантазии. |
|
Подумалось, что полёт фантазии может быть намного проще, проверьте (вместо всех 3х макросов) |
|
Можно ещё на 2 строчки сократить: |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-12-14 17:50 | Cavaler | New Issue | |
2015-12-14 17:50 | Cavaler | File Added: fast_find_patch.patch | |
2015-12-14 17:55 | shmuel | Note Added: 0014125 | |
2015-12-14 17:58 | Cavaler | Note Added: 0014126 | |
2015-12-14 17:59 | Cavaler | Note Edited: 0014126 | |
2015-12-14 18:02 | DrKnS | Note Added: 0014127 | |
2015-12-15 10:30 | Cavaler | Note Added: 0014130 | |
2016-07-17 20:40 | JohnDoe | Note Added: 0014669 | |
2016-09-20 12:37 | Cavaler | Note Added: 0014781 | |
2016-09-21 07:45 | JohnDoe | Note Added: 0014782 | |
2016-09-21 08:33 | Cavaler | Note Added: 0014783 | |
2016-09-21 08:41 | zg | Note Added: 0014784 | |
2016-09-21 09:20 | Cavaler | Note Added: 0014785 | |
2016-09-21 09:52 | JohnDoe | Note Added: 0014786 | |
2016-09-21 10:10 | Cavaler | Note Added: 0014788 | |
2016-09-21 10:32 | JohnDoe | Note Added: 0014789 | |
2016-09-21 10:41 | JohnDoe | Note Added: 0014790 | |
2016-09-21 10:45 | JohnDoe | Note Edited: 0014790 | |
2016-09-21 10:46 | JohnDoe | Note Edited: 0014790 | |
2016-09-21 10:54 | Cavaler | Note Added: 0014791 | |
2016-09-21 11:16 | JohnDoe | Note Added: 0014792 | |
2016-09-22 12:24 | shmuel | Note Added: 0014793 |