自己经常使用的两个函数:
;; archieve DONE and CANCELLED to a file
(defun org-archive-done-tasks ()
(interactive)
(org-map-entries
(lambda ()
(org-archive-subtree)
(setq org-map-continue-from
(outline-previous-heading)))
"/DONE" 'file))
(defun org-archive-cancel-tasks ()
(interactive)
(org-map-entries
(lambda ()
(org-archive-subtree)
(setq org-map-continue-from
(outline-previous-heading)))
"/CANCELLED" 'file))
但是在 =gtd.org= 执行这两个函数的时候出现如下的错误:
after-save-hook-setup: Wrong number of arguments: (0 . 0), 1
具体的debug信如下:
Debugger entered--Lisp error: (wrong-number-of-arguments (0 . 0) 1)
wg-save-session(t)
after-save-hook-setup()
run-hooks(after-save-hook)
basic-save-buffer(nil)
save-buffer()
org-archive-subtree()
(lambda nil (org-archive-subtree) (setq org-map-continue-from (outline-previous-heading)))()
org-scan-tags((lambda nil (org-archive-subtree) (setq org-map-continue-from (outline-previous-heading))) (lambda (todo tags-list level) (or (equal todo "DONE"))) nil)
org-map-entries((lambda nil (org-archive-subtree) (setq org-map-continue-from (outline-previous-heading))) "/DONE" file)
fg/org-archive-done-tasks()
funcall-interactively(fg/org-archive-done-tasks)
call-interactively(fg/org-archive-done-tasks record nil)
command-execute(fg/org-archive-done-tasks record)
counsel-M-x-action("fg/org-archive-done-tasks")
funcall(counsel-M-x-action "fg/org-archive-done-tasks")
(if ivy-marked-candidates (let* ((prefix-len (length ivy-mark-prefix)) (marked-candidates (mapcar #'(lambda (s) (let ... ...)) ivy-marked-candidates)) (multi-action (ivy--get-multi-action ivy-last))) (if multi-action (funcall multi-action marked-candidates) (let ((--dolist-tail-- marked-candidates)) (while --dolist-tail-- (let ((c ...)) (funcall action c) (setq --dolist-tail-- (cdr --dolist-tail--))))))) (funcall action x))
(unwind-protect (if ivy-marked-candidates (let* ((prefix-len (length ivy-mark-prefix)) (marked-candidates (mapcar #'(lambda ... ...) ivy-marked-candidates)) (multi-action (ivy--get-multi-action ivy-last))) (if multi-action (funcall multi-action marked-candidates) (let ((--dolist-tail-- marked-candidates)) (while --dolist-tail-- (let (...) (funcall action c) (setq --dolist-tail-- ...)))))) (funcall action x)) (ivy-recursive-restore))
(prog1 (unwind-protect (if ivy-marked-candidates (let* ((prefix-len (length ivy-mark-prefix)) (marked-candidates (mapcar #'... ivy-marked-candidates)) (multi-action (ivy--get-multi-action ivy-last))) (if multi-action (funcall multi-action marked-candidates) (let ((--dolist-tail-- marked-candidates)) (while --dolist-tail-- (let ... ... ...))))) (funcall action x)) (ivy-recursive-restore)) (if (or (eq ivy-exit 'done) (minibuffer-window-active-p (selected-window)) (null (active-minibuffer-window))) nil (select-window (active-minibuffer-window))))
(cond ((null action) current) ((eq action #'identity) (prog1 x (ivy-recursive-restore))) (t (select-window (ivy--get-window ivy-last)) (set-buffer (progn (or (progn (and (memq ... cl-struct-ivy-state-tags) t)) (signal 'wrong-type-argument (list 'ivy-state ivy-last))) (aref ivy-last 13))) (prog1 (unwind-protect (if ivy-marked-candidates (let* ((prefix-len ...) (marked-candidates ...) (multi-action ...)) (if multi-action (funcall multi-action marked-candidates) (let ... ...))) (funcall action x)) (ivy-recursive-restore)) (if (or (eq ivy-exit 'done) (minibuffer-window-active-p (selected-window)) (null (active-minibuffer-window))) nil (select-window (active-minibuffer-window))))))
(let* ((action (if (functionp ivy-inhibit-action) ivy-inhibit-action (and (not ivy-inhibit-action) (ivy--get-action ivy-last)))) (collection (progn (or (progn (and (memq ... cl-struct-ivy-state-tags) t)) (signal 'wrong-type-argument (list 'ivy-state ivy-last))) (aref ivy-last 2))) (current (progn (or (progn (and (memq ... cl-struct-ivy-state-tags) t)) (signal 'wrong-type-argument (list 'ivy-state ivy-last))) (aref ivy-last 23))) (x (cond ((and (consp (car-safe collection)) (let (...) (if idx ... ...)))) (ivy--directory (expand-file-name current ivy--directory)) ((equal current "") ivy-text) (t current))) (res (cond ((null action) current) ((eq action #'identity) (prog1 x (ivy-recursive-restore))) (t (select-window (ivy--get-window ivy-last)) (set-buffer (progn (or ... ...) (aref ivy-last 13))) (prog1 (unwind-protect (if ivy-marked-candidates ... ...) (ivy-recursive-restore)) (if (or ... ... ...) nil (select-window ...))))))) (if ivy-inhibit-action res current))
ivy-call()
(let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last (not (window-minibuffer-p))) (progn (ivy-alist-setting ivy-display-functions-alist caller))))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn 'auto) #'(lambda nil (let (...) (save-current-buffer ...))) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (plist-get ivy--display-transformers-list caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun #'ivy--minibuffer-setup) (setup-hook (make-symbol "minibuffer-setup"))) (fset setup-hook #'(lambda nil (remove-hook 'minibuffer-setup-hook setup-hook) (funcall fun))) (unwind-protect (progn (add-hook 'minibuffer-setup-hook setup-hook) (let* ((hist ...) (minibuffer-completion-table collection) (minibuffer-completion-predicate predicate) (ivy-height ...) (resize-mini-windows ...)) (if (and ivy-auto-select-single-candidate ivy--all-candidates ...) (progn ... ...) (read-from-minibuffer prompt ... ... nil hist) (car-safe ...)) (if (eq ivy-exit ...) (progn ...)))) (remove-hook 'minibuffer-setup-hook setup-hook))) (ivy--cleanup)) (ivy-call))
(progn (let ((init-fn (ivy-alist-setting ivy-init-fns-alist caller))) (if init-fn (progn (funcall init-fn)))) (if (equal overriding-local-map '(keymap)) (progn (keyboard-quit))) (setq caller (or caller this-command)) (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last (not (window-minibuffer-p))) (progn (ivy-alist-setting ivy-display-functions-alist caller))))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn 'auto) #'(lambda nil (let ... ...)) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (plist-get ivy--display-transformers-list caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun #'ivy--minibuffer-setup) (setup-hook (make-symbol "minibuffer-setup"))) (fset setup-hook #'(lambda nil (remove-hook ... setup-hook) (funcall fun))) (unwind-protect (progn (add-hook 'minibuffer-setup-hook setup-hook) (let* (... ... ... ... ...) (if ... ... ... ...) (if ... ...))) (remove-hook 'minibuffer-setup-hook setup-hook))) (ivy--cleanup)) (ivy-call)))
(progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '(:predicate :require-match :initial-input :history :preselect :def :keymap :update-fn :sort :action :multi-action :unwind :re-builder :matcher :dynamic-collection :extra-props :caller :allow-other-keys)) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:predicate :requir..." (car --cl-keys--)))))) (progn (let ((init-fn (ivy-alist-setting ivy-init-fns-alist caller))) (if init-fn (progn (funcall init-fn)))) (if (equal overriding-local-map '(keymap)) (progn (keyboard-quit))) (setq caller (or caller this-command)) (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last (not ...)) (progn (ivy-alist-setting ivy-display-functions-alist caller))))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn 'auto) #'(lambda nil ...) update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (plist-get ivy--display-transformers-list caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun #'ivy--minibuffer-setup) (setup-hook (make-symbol "minibuffer-setup"))) (fset setup-hook #'(lambda nil ... ...)) (unwind-protect (progn (add-hook ... setup-hook) (let* ... ... ...)) (remove-hook 'minibuffer-setup-hook setup-hook))) (ivy--cleanup)) (ivy-call))))
(let* ((predicate (car (cdr (plist-member --cl-rest-- ':predicate)))) (require-match (car (cdr (plist-member --cl-rest-- ':require-match)))) (initial-input (car (cdr (plist-member --cl-rest-- ':initial-input)))) (history (car (cdr (plist-member --cl-rest-- ':history)))) (preselect (car (cdr (plist-member --cl-rest-- ':preselect)))) (def (car (cdr (plist-member --cl-rest-- ':def)))) (keymap (car (cdr (plist-member --cl-rest-- ':keymap)))) (update-fn (car (cdr (plist-member --cl-rest-- ':update-fn)))) (sort (car (cdr (plist-member --cl-rest-- ':sort)))) (action (car (cdr (plist-member --cl-rest-- ':action)))) (multi-action (car (cdr (plist-member --cl-rest-- ':multi-action)))) (unwind (car (cdr (plist-member --cl-rest-- ':unwind)))) (re-builder (car (cdr (plist-member --cl-rest-- ':re-builder)))) (matcher (car (cdr (plist-member --cl-rest-- ':matcher)))) (dynamic-collection (car (cdr (plist-member --cl-rest-- ':dynamic-collection)))) (extra-props (car (cdr (plist-member --cl-rest-- ':extra-props)))) (caller (car (cdr (plist-member --cl-rest-- ':caller))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '...) (setq --cl-keys-- (cdr ...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:predicate :requir..." (car --cl-keys--)))))) (progn (let ((init-fn (ivy-alist-setting ivy-init-fns-alist caller))) (if init-fn (progn (funcall init-fn)))) (if (equal overriding-local-map '(keymap)) (progn (keyboard-quit))) (setq caller (or caller this-command)) (let* ((ivy-recursive-last (and (active-minibuffer-window) ivy-last)) (ivy--display-function (if (or ivy-recursive-last ...) (progn ...)))) (setq update-fn (or update-fn (ivy-alist-setting ivy-update-fns-alist caller))) (setq unwind (or unwind (ivy-alist-setting ivy-unwind-fns-alist caller))) (setq ivy-last (make-ivy-state :prompt (ivy--update-prompt prompt) :collection collection :predicate predicate :require-match require-match :initial-input initial-input :history history :preselect preselect :keymap keymap :update-fn (if (eq update-fn ...) #'... update-fn) :sort sort :action (ivy--compute-extra-actions action caller) :multi-action multi-action :frame (selected-frame) :window (selected-window) :buffer (current-buffer) :unwind unwind :re-builder re-builder :matcher matcher :dynamic-collection dynamic-collection :display-transformer-fn (plist-get ivy--display-transformers-list caller) :directory default-directory :extra-props extra-props :caller caller :def def)) (ivy--reset-state ivy-last) (unwind-protect (let ((fun ...) (setup-hook ...)) (fset setup-hook #'...) (unwind-protect (progn ... ...) (remove-hook ... setup-hook))) (ivy--cleanup)) (ivy-call)))))
ivy-read("M-x " ("toggle-debug-on-error" "cliphist-paste-item" "describe-function" "color-rg-delete-line" "color-rg-search-input-in-current-file" "make-frame" "vterm" "org-ref-open-bibtex-pdf" "org-ref-clean-bibtex-entry" "package-install" "helm-bibtex" "org-toggle-inline-images" "rg" "load-file" "wg-switch-to-workgroup" "package-refresh-contents" "bookmark-jump" "package-reinstall" "magit-status" "prelude-open-with" "youdao-dictionary-search-at-point" "magit-push" "org-agenda" "org-capture" "fd-dired" "ibuffer" "evil-mode" "write-file" "counsel-load-theme" "company-mode" "flyspell-buffer" "revert-buffer" "pdf-tools-install" "hydra-magit/body" "magit-commit" "package-delete" "langtool-check" "cliphist-select-item" "vc-print-log" "matlab-shell" "ora-dired-rsync" "xah-fill-or-unfill" "follow-mode" "wucuo-start" "flyspell-mode" "dired-recent-open" "org-display-inline-images" "man" "vc-next-action" "cliphist-read-items" ...) :predicate (closure ((externs "toggle-debug-on-error" "cliphist-paste-item" "describe-function" "color-rg-delete-line" "color-rg-search-input-in-current-file" "make-frame" "vterm" "org-ref-open-bibtex-pdf" "org-ref-clean-bibtex-entry" "package-install" "helm-bibtex" "org-toggle-inline-images" "rg" "load-file" "wg-switch-to-workgroup" "package-refresh-contents" "bookmark-jump" "package-reinstall" "magit-status" "prelude-open-with" "youdao-dictionary-search-at-point" "magit-push" "org-agenda" "org-capture" "fd-dired" "ibuffer" "evil-mode" "write-file" "counsel-load-theme" "company-mode" "flyspell-buffer" "revert-buffer" "pdf-tools-install" "hydra-magit/body" "magit-commit" "package-delete" "langtool-check" "cliphist-select-item" "vc-print-log" "matlab-shell" "ora-dired-rsync" "xah-fill-or-unfill" "follow-mode" "wucuo-start" "flyspell-mode" "dired-recent-open" "org-display-inline-images" "man" "vc-next-action" ...) (initial-input) smex-ido-cache smex-initialized-p amx-cache amx-initialized info-lookup-mode find-tag-marker-ring company-prefix company-common company-candidates t) (x) (not (get (intern x) 'no-counsel-M-x))) :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
(let ((externs (counsel--M-x-externs))) (ivy-read (counsel--M-x-prompt) (or externs obarray) :predicate (if externs #'(lambda (x) (not (get (intern x) 'no-counsel-M-x))) #'(lambda (sym) (and (commandp sym) (not (get sym ...)) (not (get sym ...))))) :require-match t :history 'counsel-M-x-history :action #'counsel-M-x-action :keymap counsel-describe-map :initial-input initial-input :caller 'counsel-M-x))
counsel-M-x()
funcall-interactively(counsel-M-x)
call-interactively(counsel-M-x nil nil)
command-execute(counsel-M-x)