There are two kinds of searching in zim: searching within a page, this is called Find, and searching through multiple pages, this is called Search.
The "Search->Find..." menu item triggers a search box at the bottom of the page. By typing a word here you can find occurrences of this word in the current page. You can use either the <Alt>N
and <Alt>P
or the <Ctrl>G
and <Shift><Ctrl>G
keybindings to go to the next/previous occurrence. If the word you type can not be found the box turns red and the buttons become insensitive.
The Match case check-box makes the search case sensitive. The Highlight check-box toggles highlighting for all results in the buffer.
The "Search->Replace..." menu item triggers a dialog for find and replace in the current page. The "Next" and "Previous" buttons can be used to find the next or previous occurrence without replacing. The "Replace" button can be used to replace one occurrence only. The "Replace all" button can be used to replace all occurrences in the current page at once.
The Match case check-box toggles case sensitivity. The search is by default not case sensitive. But it can be useful to match case when looking for names or acronyms.
The Whole word check-box toggles whether partial word matches are included. This is especially useful when looking for rather short words.
The Regular expressions check-box toggles advanced search and replace where "regular expressions" can be used to matched text patterns. When this option is enabled also escapes in the replacement string will be expanded and groups in the pattern can be referenced in the replacement string. See the python documentation documentation for details on the syntax for regular expressions.
The Highlight check-box toggles highlighting for all results in the buffer.
The "Search->Search..." menu item triggers the search dialog to pop up. This dialog allows you to e.g. search for pages that contain a certain word. You can have multiple search dialogs open at the same time.
You can not only search for multiple words, but zim also allows using more refined search queries. See below for the query syntax supported by this dialog for advanced usage.
A normal search runs through all the pages of the notebook. Special searches, such as searching for links or namespaces, search only part of the index and are correspondingly faster, which may be important for large notebooks with hundreds to thousands of pages.
This is the last item in the Search menu. As a special case you can search for a page name. Instead of a full text search a cache lookup will be done and a list is shown of pages linking to the page you searched for. Page names are defined as words containing a ":" character in this context.
When you open the "Search->Search Back links..." menu item you get the same Search dialog as with Search but the name of the current page is filled in already.
As an alternative you can click on the "Back links" area in the status bar, this will pop up a menu with all back links to the current page.
You can also execute a search using commandline arguments, e.g.:
zim --search Notes "tag:home and tag:foo"
which will print a list of all pages that contain both the tags "@home
" and "@foo
"
This section describes the query syntax that can be used in the search dialog.
Operators:
+ AND and && all the words must be on the page
OR or || any one of the words must be on the page
- NOT the page may not contain this word
Keywords: details on keyword searches below
Content:
Name:
NameSpace:
Links:
LinksFrom:
LinksTo:
Tag:
The Boolean operators AND NOT OR give you great flexibility in searching. If you have large, long-term notebooks, it is worth the learning curve.
AND is the default: it serves to narrow your search by stipulating that 2 or more terms appear on the same page
As in most search programs (e.g. Google and Yahoo) logical AND is implied by default: If you enter a couple of words in the search dialog zim looks for pages that contain all of these words in either in the page name or in the page contents. For multiple words an implicit AND operator is assumed. >>If you search pages containing both words foo and bar, the following queries are all equivalent:
foo bar foo AND bar foo and bar foo && bar +foo +bar
To exclude pages that contain a certain word from your query prefix the word with a "-" or the NOT operator. It is the opposite of AND. So to look for pages that contain "foo" but not "bar" try one of these:
foo -bar +foo -bar foo NOT bar foo AND NOT bar
For pages that contain neither "foo" nor "bar":
-foo - bar NOT foo NOT bar NOT foo AND NOT bar
OR is helpful is you are not sure, which exact word occurs in your text. You can enter words with similar meaning that might have occurred on the page you are looking for.
In our example the OR operator serves for finding pages containing either "foo" or "bar" or both , so to find any pages matching "foo" or "bar" the following operators yield the same results:
foo OR bar foo or bar foo || bar
When combining the operators AND has precedence over OR. So a query like:
foo OR bar AND dus
gives all pages that contain "dus" plus either "foo" or "bar" or both.
To match phrases, i.e. strings containing whitespace (blanks), or to match things that look like operators, you need to put the string between double quotes. So when looking for a literal string "foo bar" and a literal "+1" use:
"foo bar" and "+1"
To match partial words you can use a "*
" as wildcard. So the following query
Some*
will match all words starting with "Some", like "Someday", "Someplace" etc.
Keyword searches:
So far we just searched for words in the page contents and page names. If you want more control you can use keywords to specify a specific page property. Such searches limit the scope of the search, they are not only more specific, but in some cases also much faster than normal searches. The keywords for defined fields of pages are:
For example to only search the page names you can use:
Name: *foo*
This query only returns pages that contain "foo" in the page name without looking at their content.
The "Content:" keyword only matches page contents and excludes e.g. page names.
Content: foo AND NOT Name: *foo*
will find pages that have foo written somewhere in their page content but that do not contain "foo" in the page name.
The "NameSpace:" keyword limits the query to pages in the index name space below the one named . Essentially, the namespace is what you see in the index panel. The exact namespace as needed for the search is visible on the bottom left in the status bar.
Suppose under Home you have the page "photo" as top level page with multiple pages below it and you want to search only the photo part of your large notebook. You want to find all entries about depth of field or its abbreviation DoF, so you type the following search:
Namespace: Home:photo "depth of field" or dof
The "Links" and "LinksFrom" keywords return all pages linked by a certain page while "LinksTo" returns all pages that link to a certain page, this is used to find back links.
To exclude all pages linking to ":Done" try:
NOT LinksTo: ":Done"
A complex example would be to find any pages in the ":Date" namespace that link to ":Planning".
namespace: Date and linksto: Planning
The keyword "Tag" can be used to search for specifics tags like:
Tag: home
Note that a simple search for a single word like "@home
" will automatically be converted to "Tag: home
"
Поиск
=========
В zim есть два вида поиска: поиск по странице, это называется Поиск, и поиск по нескольким страницам, это поиск.
найти
----
Пункт меню «Поиск-> Найти ...» вызывает окно поиска внизу страницы. Набрав здесь слово, вы можете найти вхождения этого слова на текущей странице. Вы можете использовать сочетания клавиш <Alt> N и <Alt> P или сочетания клавиш <Ctrl> G и <Shift> <Ctrl> G, чтобы перейти к следующему / предыдущему вхождению. Если слово, которое вы вводите, не может быть найдено, поле становится красным и кнопки становятся нечувствительными.
Флажок Match case делает поиск регистрозависимым. Флажок Подсветка включает подсветку для всех результатов в буфере.
Найти и заменить
----------------
Пункт меню «Поиск-> Заменить ...» запускает диалоговое окно для поиска и замены на текущей странице. Кнопки «Далее» и «Предыдущий» можно использовать для поиска следующего или предыдущего вхождения без замены. Кнопка «Заменить» может использоваться для замены только одного экземпляра. Кнопка «Заменить все» может использоваться для одновременной замены всех вхождений на текущей странице.
Флажок Match case переключает чувствительность к регистру. По умолчанию поиск не чувствителен к регистру. Но это может быть полезно, чтобы соответствовать регистру при поиске имен или сокращений.
Флажок «Целое слово» переключает, включены ли частичные совпадения слов. Это особенно полезно при поиске довольно коротких слов.
Флажок Регулярные выражения включает расширенный поиск и заменяет место, где «регулярные выражения» могут использоваться для сопоставления текстовых шаблонов. Когда эта опция включена, экранирование в строке замены будет расширено, и группы в шаблоне могут быть указаны в строке замены. Смотрите документацию по python для подробностей о синтаксисе регулярных выражений.
Флажок Подсветка включает подсветку для всех результатов в буфере.
Поиск
------
Пункт меню «Поиск-> Поиск ...» вызывает всплывающее диалоговое окно поиска. Этот диалог позволяет вам, например, поиск страниц, которые содержат определенное слово. Вы можете открыть несколько диалоговых окон поиска одновременно.
Вы можете не только искать несколько слов, но Zim также позволяет использовать более изысканные поисковые запросы. Ниже приведен синтаксис запроса, поддерживаемый этим диалогом для расширенного использования.
Нормальный поиск проходит по всем страницам записной книжки. Специальные поисковые запросы, такие как поиск ссылок или пространств имен, выполняют поиск только в части индекса и, соответственно, выполняются быстрее, что может быть важно для больших ноутбуков с сотнями и тысячами страниц.
Обратные ссылки
----------
Это последний пункт в меню поиска. В качестве особого случая вы можете искать имя страницы. Вместо полнотекстового поиска будет выполнен поиск в кэше и показан список страниц, ссылающихся на страницу, которую вы искали. Имена страниц определяются как слова, содержащие символ «:» в этом контексте.
При открытии пункта меню «Поиск-> Поиск по ссылкам ...» вы получаете то же диалоговое окно поиска, что и при поиске, но имя текущей страницы уже заполнено.
В качестве альтернативы вы можете нажать на область «Обратные ссылки» в строке состояния, при этом появится всплывающее меню со всеми обратными ссылками на текущую страницу.
Использование командной строки
-----------------
Вы также можете выполнить поиск, используя аргументы командной строки, например:
zim --search Notes "тег: дом и тег: foo"
который напечатает список всех страниц, которые содержат теги "@home" и "@foo"
Синтаксис поискового запроса
-------------------
В этом разделе описывается синтаксис запроса, который можно использовать в диалоговом окне поиска.
#### Резюме
Операторы:
+ И и && все слова должны быть на странице
ИЛИ или || любое из слов должно быть на странице
- НЕ страница может не содержать это слово
Ключевые слова: подробности о поиске по ключевым словам ниже
Содержание:
Название:
NameSpace:
Ссылки:
LinksFrom:
LinksTo:
Тег:
#### Детали
Булевы операторы AND NOT ИЛИ дают вам большую гибкость в поиске. Если у вас большие, долговременные ноутбуки, это стоит того, чтобы учиться.
И - значение по умолчанию: оно служит для сужения поиска, указав, что на одной странице появляются 2 или более терминов.
Как и в большинстве поисковых программ (например, Google и Yahoo), логическое И подразумевается по умолчанию: если вы введете пару слов в диалоговом окне поиска, zim ищет страницы, которые содержат все эти слова либо в названии страницы, либо в ее содержимом. , Для нескольких слов подразумевается неявный оператор AND. >> Если вы ищете страницы, содержащие слова foo и bar, все следующие запросы эквивалентны:
фу бар
фу и бар
фу и бар
Foo && Bar
+ фу + бар
Чтобы исключить страницы, содержащие определенное слово, в запросе добавьте слово «-» или оператор NOT. Это противоположность AND. Поэтому, чтобы найти страницы, содержащие «foo», но не «bar», попробуйте один из них:
фу-бар
+ foo -bar
Foo НЕ бар
фу а не бар
Для страниц, которые не содержат ни «foo», ни «bar»:
-фу - бар
НЕ ФУ НЕ БАР
НЕ ФУ И НЕ БАР
ИЛИ полезно, если вы не уверены, какое именно слово встречается в вашем тексте. Вы можете вводить слова с аналогичным значением, которое могло произойти на странице, которую вы ищете.
В нашем примере оператор OR служит для поиска страниц, содержащих либо «foo», либо «bar», либо и то и другое, поэтому для поиска страниц, соответствующих «foo» или «bar», следующие операторы дают одинаковые результаты:
Foo ИЛИ бар
фу или бар
фу || бар
При объединении операторы AND имеют приоритет над OR. Так что запрос вроде:
Foo ИЛИ бар и DUS
дает все страницы, которые содержат «dus» плюс либо «foo» или «bar», либо оба.
Чтобы сопоставить фразы, т. Е. Строки, содержащие пробелы (пробелы), или совпадения с вещами, которые выглядят как операторы, необходимо поместить строку в двойные кавычки. Поэтому при поиске литеральной строки «foo bar» и литерала «+1» используйте:
"foo bar" и "+1"
Для сопоставления частичных слов вы можете использовать «*» в качестве подстановочного знака. Итак, следующий запрос
Несколько*
будет соответствовать всем словам, начинающимся с «Some», например «Someday», «Someplace» и т. д.
Поиск по ключевым словам:
Пока что мы просто искали слова в содержимом страницы и названиях страниц. Если вы хотите больше контроля, вы можете использовать ключевые слова, чтобы указать конкретное свойство страницы. Такие поиски ограничивают область поиска, они не только более специфичны, но в некоторых случаях также намного быстрее, чем обычные поиски. Ключевые слова для определенных полей страниц:
Содержание:
Название:
NameSpace:
Ссылки:
LinksFrom:
LinksTo:
Тег:
Например, чтобы искать только имена страниц, которые вы можете использовать:
Имя: * foo *
Этот запрос возвращает только те страницы, которые содержат «foo» в имени страницы, не просматривая их содержимое.
Ключевое слово "Content:" соответствует только содержимому страницы и исключает, например, названия страниц.
Содержание: foo И НЕ Имя: * foo *
найдет страницы, на которых foo написано где-то в содержимом их страниц, но которые не содержат «foo» в названии страницы.
Ключевое слово «NameSpace:» ограничивает запрос страницами в пространстве имен индекса под именем. По сути, пространство имен - это то, что вы видите на панели индекса. Точное пространство имен, необходимое для поиска, отображается в левом нижнем углу строки состояния.
Предположим, что в разделе «Главная страница» у вас есть страница «фото» в качестве страницы верхнего уровня с несколькими страницами под ней, и вы хотите искать только часть фотографии вашей большой записной книжки. Вы хотите найти все записи о глубине поля или его сокращении DoF, поэтому вы вводите следующий поиск:
Пространство имен: Home: фотография "глубина резкости" или dof
Ключевые слова "Links" и "LinksFrom" возвращают все страницы, на которые ссылается определенная страница, а "LinksTo" возвращает все страницы, которые ссылаются на определенную страницу, это используется для поиска обратных ссылок.
Чтобы исключить все страницы, ссылающиеся на «: Готово», попробуйте:
НЕ Ссылки на: ": Готово"
Сложным примером может быть поиск любых страниц в пространстве имен «: Date», которые ссылаются на «: Planning».
Пространство имен: Дата и ссылки: Планирование
Ключевое слово «Tag» можно использовать для поиска таких тегов, как:
Тег: дом
Обратите внимание, что простой поиск одного слова, такого как "@home", будет автоматически преобразован в "Tag: home"