通过键绑定重新映射到给定的子树

时间:2011-10-06 22:44:49

标签: emacs elisp org-mode

这个问题可能非常简单,但我很难挣扎,因为我是ELISP的新手。

我希望有一个键绑定来将当前子树重新编译为子树TRASH。

我编写了代码但不起作用。你能帮我解决一下吗? 提前谢谢!

代码:

(defun org-move-to-trash()
  (org-refile "TRASH") ;; the function fails here because the parameter has to be specified in a different way. But how?
)

(global-set-key (kbd "C-c b") 'org-move-to-trash)

1 个答案:

答案 0 :(得分:6)

如果您对elisp感兴趣,可以阅读org-refile的源代码,了解如何准备它所期望的参数(这不是直接的)。但是,要解决这个问题以及许多其他更常见的问题,您根本不需要使用elisp。你需要一个键盘宏。请参阅manual

我将概述解决这个问题的步骤:

  1. C-x(
  2. C-c C-w TRASH
  3. C-x)
  4. M-x name-last-kbd-macro
  5. ORG-重新提交到垃圾桶
  6. C-x b scratch
  7. M-x insert-kbd-macro
  8. ORG-重新提交到垃圾桶
  9. 您应该看到:

    (fset 'org-refile-to-TRASH
       [?\C-c ?\C-w ?T ?R ?A ?S ?H return])
    

    您可以将此代码粘贴到您的init文件中,并使用org-refile-to-TRASH作为命令,就像它是一个defun例如在global-set-keyM-x