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

and*_*rei 3 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)
Run Code Online (Sandbox Code Playgroud)

eve*_*_jr 6

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

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

  1. Cx(
  2. Cc Cw TRASH
  3. Cx)
  4. Mx name-last-kbd-macro
  5. ORG-重新提交到TRASH
  6. Cx b 划伤
  7. Mx insert-kbd-macro
  8. ORG-重新提交到TRASH

你应该看到:

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

您可以将此代码粘贴到您的init文件,并使用org-refile-to-TRASH一个命令,酷似如果它是一个defun定义如在global-set-key,M-x等等.