Emacs 通过键绑定重新填充到给定子树

Emacs 通过键绑定重新填充到给定子树,emacs,elisp,org-mode,Emacs,Elisp,Org Mode,问题可能很简单,但我正在努力,因为我对ELISP是新手 我想要一个键绑定来将当前子树重新填充到子树垃圾箱 我已经编写了代码,但它不起作用。你能帮我修一下吗? 提前谢谢 守则: (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

问题可能很简单,但我正在努力,因为我对ELISP是新手

我想要一个键绑定来将当前子树重新填充到子树垃圾箱

我已经编写了代码,但它不起作用。你能帮我修一下吗? 提前谢谢

守则:

(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)

如果您对elisp感兴趣,可以阅读org refile的源代码,了解如何准备它所期望的参数(这不是直截了当的)。然而,要解决这个问题和其他许多更一般的问题,您根本不需要elisp。你需要一个键盘宏。看

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

  • C-x(
  • C-C-w垃圾
  • C-x)
  • M-x名称最后一个kbd宏
  • 重新填充到垃圾桶
  • C-x b划痕
  • M-x插入kbd宏
  • 重新填充到垃圾桶
  • 你应该看到:

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

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

    Wow!这是一件非常有用的事情。这可以解决我在emacs上遇到的许多其他问题:)谢谢分享!很高兴你发现我的回答很有帮助。如果它解决了您的问题,请单击复选标记将其标记为已接受的答案。投票吧!:)