CudaText: Поиск по нескольким словам во вкладке/файле

Post Reply
mix-7
Posts: 926
Joined: 11.05.2018 11:02

CudaText: Поиск по нескольким словам во вкладке/файле

Post by mix-7 »

Здесь начало диалога по функции поиска по нескольким словам
main Alexey wrote: 28.03.2024 08:58 уже поиск по 2м словам "плох". то что он найдет выделение. в 400к символьном файле это выделение может быть до 400к длиной.
3+ слов то же самое.

задача "плоха".
...
Текст, пусть, 100 МБ из n строк, и 2 слова длиной, скажем, по 10 символов слово1, слово2.
Как может быть короткое слово2 в 10 символов повторяться во всем 100 МБ тексте подряд и слитно?
Ну даже в Minified JSON (или Minified JS) ищем ОДНО слово "name", оно может встречаться 1000 раз.
Разве это чем-то опасно?
Находим и двигаемся вперед или назад.
А если нужно найти ДВА слова в этом однострочном Minified JSON?
Чем это опасно?
Пусть у нас очень много очень длинных строк в файле.
У нас есть задача найти строки, где есть в одной строке, пример,
John Mary David
или
'погода' 'дожд' 'сне' (дожд*ливая сне*жная сне*г | шел дождь, погода была плохая )

Но мы не знаем, в какой последовательности они встречаются
Идея в том, чтобы просто ОТФИЛЬТРОВАТЬ строки и/или блоки лексера.
Как это сделано в Code tree.
А вот выделять в них все три слова подсветкой - для меня сложно представить, как это реализовать.
(Хотя на форуме 4PDA это удобно - получаешь отобранные посты с нескольким выделенными словами в них по "И".
Причем, даже как-то учитывают изменение словоформ.)

Вот кратко:
Есть файл во вкладке.
Есть несколько слов для поиска в этой вкладке.
Нужно показать только те строки/блоки, где есть эти слова в одном блоке лексера.
Остальные не показывать. Или свернуть. Но лучше скрыть для удобства.


Или нужно найти слова датчик движения.
Отбор по слову "датчик", в отборе искать "движения"

Пусть сделать не полностью программно, не сразу по всем словам, а инкрементально:
отбирать первый контекст и его показывать, а затем такой же поиск по следующему контексту.


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

mix-7 wrote: 24.11.2023 10:03 > с регулярками - нет.
<...>
Придумал мини-todo: "- " в первой позиции что сделать:

Code: Select all

- сделать дело 1
...
- сделать дело n
Эти записи разбросаны по тексту.
Ищу с помощью регулярного выражения

Code: Select all

^-\ .*
Находит и выделяет всю строку.
<...>
Вот похожая задача.
Собрать ВСЕ найденные "тудушки" в одном месте.
Показывать их все слитно.

Может, если подумать, можно мои "хотелки" можно реализовать макросами?
Last edited by mix-7 on 04.07.2025 13:27, edited 1 time in total.
mix-7
Posts: 926
Joined: 11.05.2018 11:02

Re: CudaText. Поиск по нескольким словам во вкладке/файле

Post by mix-7 »

Вот предложенный Автором вариант реализации:
main Alexey wrote: 29.06.2025 10:05 >Про 400 к не понял. Редко встречается строка в 400 К.

если у нас minified json, то он вытянется в строку оч большой длинны. до 400К.
minified JS тоже бывают.

----------------------
>'CudaExt / Find In Lines'. тоже не нашел.

я про команду 'Find in lines' в плагине CudaExt.
из плагинового install.inf:
[item9]
section=commands
caption=Cuda&-Ext\&Find/Replace\Find in &Lines...
hotkey=Shift+Ctrl+F
method=dlg_find_in_lines
питон-метод называется dlg_find_in_lines.

-----------------
>Вот была бы такая фильтрация поиска в тексте вкладки: показ только тех строк файла, где встречаются n слов поиска!

может можно плагин сделать. по заданному условию искать строки, и фолдить блоки строк которые не подошли. АПИ для фолдинга есть - ed.folding().
mix-7
Posts: 926
Joined: 11.05.2018 11:02

Re: CudaText. Поиск по нескольким словам во вкладке/файле

Post by mix-7 »

> я про команду 'Find in lines' в плагине CudaExt.

А в чем ее отличие от Search - Find?
main Alexey
Posts: 2562
Joined: 25.08.2021 18:15

Re: CudaText: Поиск по нескольким словам во вкладке/файле

Post by main Alexey »

>>Нужно показать только те строки/блоки, где есть эти слова в одном блоке лексера. Остальные не показывать. Или свернуть.

задача для плагина. он может поискать строки, ненужные свернуть (folding).

>А в чем ее отличие от Search - Find?

например поиск всегда делается в одной строке. multiline regex не найдет.
и там (в диалоге Find In Lines) есть ПОМОЩЬ ---- '=' / Help...
mix-7
Posts: 926
Joined: 11.05.2018 11:02

Re: CudaText: Поиск по нескольким словам во вкладке/файле

Post by mix-7 »

> multiline regex не найдет.

стандартный поиск CudaText Search ищет по строкам отдельно каждую?

> задача для плагина. он может поискать строки, ненужные свернуть (folding).

А есть способ отображать ТОЛЬКО те строки, в которых есть найденная строка?
(Кажется все результаты поиска можно выделить сразу и скопировать в буфер, но это бессмысленно - одна и та же искомая подстрока)
А вот модель, алгоритм поиска по нескольким словам (и что я ее сразу не придумал! Хотя она уже реализована в фильтре Code tree)

Показывать ВСЕ строки, где найдено слово
потом в этой выборке искать еще раз по слову!

Модель : grep <слово1> | ... grep <словоN> - поиск и отображение строк, где есть все N слов.

Минус grep - 1 его вывод отображается в терминале, 2 его вывод невозможно править.
Вот бы реализовать grep для вкладки/группы вкладок/каталоге файлов !

А это сложно? Вывод отбора вместо всего файла?
Post Reply