![](/img/trans.png)
[英]how to get Emacs org-mode done statistics to filter up through non-todo headings?
[英]Emacs Org-mode: Quickly mark TODO as DONE
我希望有一条快捷方式可以将TODO
的状态直接更改为DONE
(和返回),当我在线上的任何位置时, CLOSED
时间标签折叠(不像速度键需要在第一个之前)星号)。
目前我有2个选择:
Cc Ct d TAB (将org-use-fast-todo-selection
设置为t
, d为我的DONE
状态快捷方式, TAB隐藏子树), 或者
S-right TAB (使用org-shiftright
, DONE
是TODO
之后的第一个状态)。
你能帮我把它绑定到像Cc Cd这样的单一快捷方式吗? 请注意我有比TODO
和DONE
更多的状态,但是这个快捷方式也应该在这些之间切换。
奖励积分 :附加命令,它也会在与上一个任务相同级别的下一行开始新的TODO
项目。
非常感谢你!
不确定“时间标记”的含义,但根据您列出的工作流程,以下命令应该执行您想要的操作:
(defun org-toggle-todo-and-fold ()
(interactive)
(save-excursion
(org-back-to-heading t) ;; Make sure command works even if point is
;; below target heading
(cond ((looking-at "\*+ TODO")
(org-todo "DONE")
(hide-subtree))
((looking-at "\*+ DONE")
(org-todo "TODO")
(hide-subtree))
(t (message "Can only toggle between TODO and DONE.")))))
(define-key org-mode-map (kbd "C-c C-d") 'org-toggle-todo-and-fold)
至于在与当前任务相同的级别上插入新的TODO
项目, org-mode
具有内置命令。 你可以通过这样做来阅读它们
org-insert-todo-heading
RET org-insert-todo-heading-respect-content
RET 一个简单的切换命令可能如下所示
(defun my-org-todo-toggle ()
(interactive)
(let ((state (org-get-todo-state))
post-command-hook)
(if (string= state "TODO")
(org-todo "DONE")
(org-todo "TODO"))
(run-hooks 'post-command-hook)
(org-flag-subtree t)))
(define-key org-mode-map (kbd "C-c C-d") 'my-org-todo-toggle)
post-command-hook
有点棘手,但是需要,因为否则在命令之后添加(和显示)注释,这使得时间日志部分展开。
为了启动一个新的TODO项,您可以查看现有的org-insert-todo-heading
(绑定到<MS-return>
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.