пересылка к данному поддереву с помощью связывания клавиш - PullRequest
3 голосов
/ 07 октября 2011

Проблема, вероятно, очень проста, но я изо всех сил, потому что я новичок в 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 Ответ

6 голосов
/ 07 октября 2011

Если вас интересует elisp, вы можете прочитать исходный код org-refile, чтобы узнать, как подготовить аргументы, которые он ожидает (это не так просто).Тем не менее, чтобы решить эту и многие другие более общие проблемы, вам не нужен elisp вообще.Вам нужен макрос клавиатуры.См. руководство .

. Я опишу шаги, которые я предприму для решения этой проблемы:

  1. Cx (
  2. Cc Cw TRASH
  3. Cx)
  4. Mx name-last-kbd-macro
  5. org-refile-to-TRASH
  6. Cx b scratch
  7. Mx insert-kbd-macro
  8. org-refile-to-TRASH

Вы должны увидеть:

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

Вы можете вставить этот кодв ваш файл инициализации и используйте org-refile-to-TRASH в качестве команды, точно так же, как если бы это был defun, например, global-set-key, M-x и т. д.

...