【问题标题】:Emacs Org-mode: Quickly mark TODO as DONEEmacs Org-mode:快速将 TODO 标记为 DONE
【发布时间】:2014-09-19 08:57:49
【问题描述】:

我想要一个快捷方式,将TODO 的状态直接更改为DONE(并返回),当我在线上的任何位置时折叠CLOSED 时间标签(不像需要在第一个星号之前的速度键)。

目前我有两个选择:

  1. C-c C-t d TABorg-use-fast-todo-selection 设置为 td 是我的 DONE 状态快捷方式TAB 隐藏子树),

  2. S-right TAB(使用org-shiftrightDONETODO之后的第一个状态)。

你能帮我把它绑定到像 C-c C-d 这样的单个快捷方式。请注意,我有比 TODODONE 更多的状态,但这个快捷方式也应该在它们之间切换。

奖励积分:附加命令,它还会在与上一个任务相同级别的下一行启动一个新的TODO 项目。

非常感谢!

【问题讨论】:

  • 看看worfcwd 将状态更改为 DONE,wta 将添加一个新的 TODO。
  • 如果您启用“速度键”,那么您在任务的第一列中也会有“t d”。
  • 您最好使用C-c <letter> 绑定,例如C-c d,因为所有此类绑定都是为最终用户保留的,而C-c C-d 最终可能会与其他内容发生冲突。跨度>

标签: emacs org-mode


【解决方案1】:

不确定您所说的“时间标签”是什么意思,但根据您列出的工作流程,以下命令应该可以满足您的需求:

(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 对此有内置命令。您可以通过以下方式阅读它们

  • C-h f org-insert-todo-heading RET
  • C-h f org-insert-todo-heading-respect-content RET

【讨论】:

  • 如何让 (org-back-to-heading t) 而不是 (beginning-of-line) 允许提议的功能可以在更广泛的位置工作?
【解决方案2】:

一个简单的切换命令可能如下所示

(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(绑定到<M-S-return>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多