Emacs Org-Mode: как найти все TODO, у которых нет указанного срока

В Emacs org-mode я знаю, что я могу вызвать представление "матч" (используя C-a m), а затем использовать следующую строку поиска, чтобы найти все элементы TODO, у которых установлен крайний срок:

DEADLINE="<today>"

Тем не менее, я хочу найти все элементы в моем списке TODO, которые вообще не имеют установленного срока. Я искал, но не могу найти ответа; также не работает следующее:

DEADLINE=""

Как искать все TODO, для которых не указан DEADLINE?

(То же самое относится и к поиску элементов, которые не были запланированы, но я предполагаю, что решение будет таким же.)

Ответ 1

Вы можете использовать

-DEADLINE = {.} +

и

-SCHEDULED = {.} +

который ищет элементы, у которых нет тега DEADLINE/SCHEDULED с любым содержимым в нем, то есть не установлены никакие запланированные или предельные даты. Количества используются для определения регулярного выражения (которое в этом случае соответствует чему-либо длиннее пустой строки).

Например, я использую следующее:

 (setq org-agenda-custom-commands
       `(;; match those tagged with :inbox:, are not scheduled, are not DONE.
         ("ii" "[i]nbox tagged unscheduled tasks" tags "+inbox-SCHEDULED={.+}/!+TODO|+STARTED|+WAITING")))

Ссылка: http://orgmode.org/manual/Matching-tags-and-properties.html

Ответ 2

Другим подходом было бы использовать org-agenda-skip-entry. Где я пропускаю задачи, которые запланированы или с установленным сроком или меткой времени, а также те, которые содержат слово/тег "desparche".

("X" "Not scheduled"
     ( (todo "TODO"
             (
              (org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled 'deadline 'timestamp 'regexp "desparche"                                                               ))
              )
             )
       )
     )