org-agenda.el: (org-agenda-bulk-toggle-all): New command
* org-agenda.el (org-agenda-bulk-toggle): Fix docstring. (org-agenda-bulk-toggle-all): New command. (org-agenda-mode-map): Bind `org-agenda-bulk-toggle' to `M-m' and `org-agenda-bulk-toggle-all' to `M-*'. (org-agenda-menu): Add `org-agenda-bulk-toggle' and `org-agenda-bulk-toggle-all'. (org-agenda-bulk-mark, org-agenda-bulk-unmark): Jump to the next headline, not the next line.
This commit is contained in:
parent
f1ff37ebbd
commit
4e62936ae5
|
@ -2183,7 +2183,9 @@ The following commands are available:
|
|||
(org-defkey org-agenda-mode-map "\C-k" 'org-agenda-kill)
|
||||
(org-defkey org-agenda-mode-map "\C-c\C-w" 'org-agenda-refile)
|
||||
(org-defkey org-agenda-mode-map "m" 'org-agenda-bulk-mark)
|
||||
(org-defkey org-agenda-mode-map "\M-m" 'org-agenda-bulk-toggle)
|
||||
(org-defkey org-agenda-mode-map "*" 'org-agenda-bulk-mark-all)
|
||||
(org-defkey org-agenda-mode-map "\M-*" 'org-agenda-bulk-toggle-all)
|
||||
(org-defkey org-agenda-mode-map "#" 'org-agenda-dim-blocked-tasks)
|
||||
(org-defkey org-agenda-mode-map "%" 'org-agenda-bulk-mark-regexp)
|
||||
(org-defkey org-agenda-mode-map "u" 'org-agenda-bulk-unmark)
|
||||
|
@ -2399,9 +2401,11 @@ The following commands are available:
|
|||
("Bulk action"
|
||||
["Mark entry" org-agenda-bulk-mark t]
|
||||
["Mark all" org-agenda-bulk-mark-all t]
|
||||
["Mark matching regexp" org-agenda-bulk-mark-regexp t]
|
||||
["Unmark entry" org-agenda-bulk-unmark t]
|
||||
["Unmark all entries" org-agenda-bulk-unmark-all :active t :keys "U"])
|
||||
["Unmark all" org-agenda-bulk-unmark-all :active t :keys "U"]
|
||||
["Toggle mark" org-agenda-bulk-toggle t]
|
||||
["Toggle all" org-agenda-bulk-toggle-all t]
|
||||
["Mark regexp" org-agenda-bulk-mark-regexp t])
|
||||
["Act on all marked" org-agenda-bulk-action t]
|
||||
"--"
|
||||
("Tags and Properties"
|
||||
|
@ -9606,7 +9610,10 @@ This is a command that has to be installed in `calendar-mode-map'."
|
|||
(org-get-todo-face "TODO")
|
||||
'evaporate)
|
||||
(overlay-put ov 'type 'org-marked-entry-overlay))
|
||||
(beginning-of-line 2)
|
||||
(end-of-line 1)
|
||||
(or (ignore-errors
|
||||
(goto-char (next-single-property-change (point) 'txt)))
|
||||
(beginning-of-line 2))
|
||||
(while (and (get-char-property (point) 'invisible) (not (eobp)))
|
||||
(beginning-of-line 2))
|
||||
(message "%d entries marked for bulk action"
|
||||
|
@ -9620,12 +9627,13 @@ This is a command that has to be installed in `calendar-mode-map'."
|
|||
(defun org-agenda-bulk-mark-regexp (regexp)
|
||||
"Mark entries matching REGEXP for future agenda bulk action."
|
||||
(interactive "sMark entries matching regexp: ")
|
||||
(let ((entries-marked 0))
|
||||
(let ((entries-marked 0) txt-at-point)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(goto-char (next-single-property-change (point) 'txt))
|
||||
(while (re-search-forward regexp nil t)
|
||||
(when (string-match regexp (get-text-property (point) 'txt))
|
||||
(while (and (re-search-forward regexp nil t)
|
||||
(setq txt-at-point (get-text-property (point) 'txt)))
|
||||
(when (string-match regexp txt-at-point)
|
||||
(setq entries-marked (1+ entries-marked))
|
||||
(call-interactively 'org-agenda-bulk-mark))))
|
||||
(if (not entries-marked)
|
||||
|
@ -9642,15 +9650,27 @@ This is a command that has to be installed in `calendar-mode-map'."
|
|||
(setq org-agenda-bulk-marked-entries
|
||||
(delete (org-get-at-bol 'org-hd-marker)
|
||||
org-agenda-bulk-marked-entries))
|
||||
(beginning-of-line 2)
|
||||
(end-of-line 1)
|
||||
(or (ignore-errors
|
||||
(goto-char (next-single-property-change (point) 'txt)))
|
||||
(beginning-of-line 2))
|
||||
(while (and (get-char-property (point) 'invisible) (not (eobp)))
|
||||
(beginning-of-line 2))
|
||||
(message "%d entries left marked for bulk action"
|
||||
(length org-agenda-bulk-marked-entries)))
|
||||
(t (message "No entry to unmark here")))))
|
||||
|
||||
(defun org-agenda-bulk-toggle-all ()
|
||||
"Toggle all marks for bulk action."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (ignore-errors
|
||||
(goto-char (next-single-property-change (point) 'txt)))
|
||||
(org-agenda-bulk-toggle))))
|
||||
|
||||
(defun org-agenda-bulk-toggle ()
|
||||
"Toggle marking the entry at point for bulk action."
|
||||
"Toggle the mark at point for bulk action."
|
||||
(interactive)
|
||||
(if (org-agenda-bulk-marked-p)
|
||||
(org-agenda-bulk-unmark)
|
||||
|
|
Loading…
Reference in New Issue