Emacs键盘宏无法调用组织模式捕获模板

Emacs键盘宏无法调用组织模式捕获模板,emacs,org-mode,Emacs,Org Mode,我正在尝试使用以下键盘测试宏 (fset 'jj [?\C-c ?c ?t ?j ?j return ?\C-c ?\C-c]) 调用此捕获模板定义 (setq org-capture-templates '(("t" "Todo" entry (file "~/org/j.org")))) 请注意,C-cc调用M-x组织捕获 不幸的是,它会产生以下错误消息: After 0 kbd macro iterations: byte-code: Capture abort: (wrong

我正在尝试使用以下键盘测试宏

(fset 'jj   [?\C-c ?c ?t ?j ?j  return ?\C-c ?\C-c]) 
调用此捕获模板定义

(setq org-capture-templates '(("t" "Todo" entry (file "~/org/j.org"))))
请注意,
C-cc
调用M-x组织捕获

不幸的是,它会产生以下错误消息:

After 0 kbd macro
iterations: byte-code: Capture abort: (wrong-type-argument stringp
(file:~/org/todo.org::*Tasks Tasks))
我已经制作了下面的回溯显示。组织模式配置为 追加在回溯之后

Debugger entered--Lisp error: 
(error "Capture abort: (wrong-type-argument stringp
(file:~/org/todo.org::*Tasks Tasks))")

signal(error ("Capture abort: (wrong-type-argument stringp
(file:~/org/todo.org::*Tasks Tasks))"))

error("Capture abort: %s" (wrong-type-argument stringp
("file:~/org/todo.org::*Tasks" "Tasks")))

(condition-case error (org-capture-put :template
(org-capture-fill-template)) ((error quit) (if (get-buffer "*Capture*")
(kill-buffer "*Capture*")) (error "Capture abort: %s" error)))

 (cond ((equal entry "C") (customize-variable (quote org-capture-templates))) 
  ((equal entry "q") (error "Abort")) 
  (t (org-capture-set-plist entry) (org-capture-get-template) 
     (org-capture-put :original-buffer orig-buf 
                      :original-file (or (buffer-file-name orig-buf) 
                                         (and (featurep (quote dired)) 
                                              (car (rassq orig-buf
                                                         dired-buffers))))
                      :original-file-nondirectory (and (buffer-file-name
                                                      orig-buf) (file-name-nondirectory

        (buffer-file-name orig-buf)))
                      :annotation annotation :initial initial
:return-to-wconf (current-window-configuration)
                      :default-time (or org-overriding-default-time
 (org-current-time))$) 
     (org-capture-set-target-location) 
     (condition-case error
         (org-capture-put :template (org-capture-fill-template))
       ((error quit) 
        (if (get-buffer "*Capture*") (kill-buffer "*Capture*")) 
        (error "Capture abort: %s" error))) 
     (setq org-capture-clock-keep (org-capture-get :clock-keep)) 
     (if (equal goto 0) 
         (org-capture-insert-template-here) 
       (condition-case error 
           (org-capture-place-template 
            (equal (car (org-capture-get :target)) (quote function))) 
         ((error quit) (if (and (buffer-base-buffer ...) 
                                (string-match "\\`CAPTURE-" ...)) 
                           (kill-buffer (current-buffer))) 
          (set-window-configuration (org-capture-get :return-to-wconf)) 
          (error "Capture template `%s': %s" (org-capture-get :key) (nth
                                                           1 error)))) 
       (if (and (derived-mode-p (quote org-mode))
                (org-capture-get :clock-in)) 
           (condition-case nil (progn (if (org-clock-is-active) 
                                          (org-capture-put 
                                           :interrupted-clock...)) 
                                      (org-clock-in) (org-set-local
(quote org-capture-clock-was-started) t)) 
             (error "Could not start the clock in this capture buffer"))) 
       (if (org-capture-get :immediate-finish) (org-capture-finalize)))))

(let* ((orig-buf (current-buffer)) 
   (annotation 
    (if (and (boundp (quote org-capture-link-is-already-stored))
             org-capture-link-is-already-stored) 
        (plist-get org-store-link-plist :annotation) 
      (condition-case nil (progn (org-store-link nil)) 
        (error nil)))) 
   (entry (or org-capture-entry (org-capture-select-template keys)))
         initial) 
 (setq initial (or org-capture-initial (and (org-region-active-p)
 (buffer-substring (point) (mark))))) 
 (if (stringp initial) (progn (remove-text-properties 0 (length initial)
 (quote (read-only t)) initial))) 
 (if (stringp annotation) (progn (remove-text-properties 0 (length annotation) 
   (quote (read-only  t)) annotation))) 
 (cond ((equal entry "C")
     (customize-variable (quote org-capture-templates))) 
    ((equal entry "q") 
     (error "Abort")) (t (org-capture-set-plist entry)
                         (org-capture-get-template) 
                         (org-capture-put 
                          :original-buffer orig-buf
                          :original-file (or (buffer-file-name orig-buf)
                                             (and (featurep (quote dired)) 
                                                  (car (rassq orig-buf
                                          dired-buffers)))) 
                          :original-file-nondirectory (and
                              (buffer-file-name orig-buf)

  (file-name-nondirectory

            (buffer-file-name orig-buf))) 
                          :annotation annotation :initial initial
                       :return-to-wconf
                          (current-window-configuration) 
                          :default-time (or org-overriding-default-time
        (org-current-time)))
                         (org-capture-set-target-location) 
                         (condition-case error 
                             (org-capture-put :template
          (org-capture-fill-template))
                           ((error quit) 
                            (if (get-buffer "*Capture*") 
                                (kill-buffer "*Capture*")) 
                            (error "Capture abort: %s" error))) 
                         (setq org-capture-clock-keep (org-capture-get
              :clock-keep)) 
                         (if (equal goto 0) 
 (org-capture-insert-template-here) 
                           (condition-case error
 (org-capture-place-template (equal (car ...) (quote function))) 
                             ((error quit) (if (and ... ...)
                                               (kill-buffer ...)) 
                              (set-window-configuration (org-capture-get
    :return-to-wconf)) 
                              (error "Capture template `%s': %s"
(org-capture-get :key) (nth 1 error)))) 
                           (if (and (derived-mode-p (quote org-mode))
(org-capture-get :clock-in))
                               (condition-case nil (progn (if ... ...)
(org-clock-in) (org-set-local ... t)) 
                                 (error "Could not start the clock in
               this capture buffer"))) 
                           (if (org-capture-get :immediate-finish)
(org-capture-finalize))))))                    
(cond ((equal goto (quote (4))) (org-capture-goto-target)) 
  ((equal goto (quote (16))) (org-capture-goto-last-stored))
  (t (let* ((orig-buf (current-buffer)) 
            (annotation (if (and (boundp ...)
org-capture-link-is-already-stored) 
                            (plist-get org-store-link-plist :annotation) 
                          (condition-case nil (progn ...) (error nil)))) 
            (entry (or org-capture-entry
                       (org-capture-select-template keys))) initial) 
       (setq initial (or org-capture-initial 
                         (and (org-region-active-p)
                              (buffer-substring (point) (mark))))) 
       (if (stringp initial) 
           (progn
             (remove-text-properties 0 (length initial) 
                                     (quote (read-only t)) initial))) 
       (if (stringp annotation)
           (progn (remove-text-properties 0 (length annotation) 
                                          (quote (read-only t))
annotation))) 
       (cond ((equal entry "C") (customize-variable (quote
 org-capture-templates))) 
             ((equal entry "q") 
              (error "Abort")) 
             (t (org-capture-set-plist entry) (org-capture-get-template) 
                (org-capture-put 
                 :original-buffer orig-buf 
                 :original-file (or (buffer-file-name orig-buf) (and ...
...)) 
                 :original-file-nondirectory (and (buffer-file-name
orig-buf) (file-name-nondirectory ...)) 
                 :annotation annotation 
                 :initial initial 
                 :return-to-wconf (current-window-configuration) 
                 :default-time (or org-overriding-default-time
(org-current-time)))
                (org-capture-set-target-location) 
                (condition-case error (org-capture-put 
                                       :template
(org-capture-fill-template))
                  ((error quit) (if ... ...) 
                   (error "Capture abort: %s" error))) 
                (setq org-capture-clock-keep
                      (org-capture-get :clock-keep)) 
                (if (equal goto 0)
                    (org-capture-insert-template-here) 
                  (condition-case error (org-capture-place-template ...)
                    (... ... ... ...)) 
                  (if (and ... ...) (condition-case nil ... ...)) 
                  (if (org-capture-get :immediate-finish)
                      (org-capture-finalize))))))))                
org-capture(nil)
call-interactively(org-capture nil nil)
command-execute(jj record)
execute-extended-command(nil "jj")
call-interactively(execute-extended-command nil nil)
----------------------------------------------------
ORG-MODE CONFIGURATION
Emacs  : GNU Emacs 24.3.1 (i686-pc-linux-gnu, GTK+ Version 3.4.2)
      of 2014-02-22 on chindi10, modified by Debian
Package: Org-mode version 8.2.10 (8.2.10-dist  <at>  /usr/share/emacs/site-lisp/org/)

 current state:
==============
(setq
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point
 org-babel-execute-safely-maybe)
 org-tab-first-hook '(org-hide-block-toggle-maybe
 org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe
 org-babel-header-arg-expand)
 org-agenda-use-time-grid nil
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
 org-cycle-hide-inline-tasks org-cycle-show-empty-lines
 org-optimize-window-after-visibility-change)
 org-agenda-custom-commands '(("pa" "A-priority" tags-todo
 "+SCHEDULED<=\"<today>\"+PRIORITY=\"A\"") ("pb" "B-priority"

                      tags-todo

                      "+SCHEDULED<=\"<today>\"+PRIORITY=\"B\"")
                          ("pc" "C-priority" tags-todo
 "+SCHEDULED<=\"<today>\"+PRIORITY=\"C\"") ("b" "Buy" tags

                      "+CATEGORY=\"BUY\"")
                          ("w" "Web" tags "+CATEGORY=\"WEB\"") ("k"
 "Books" tags "+CATEGORY=\"BOOKS\"")
                          ("v" "Movies" tags "+CATEGORY=\"MOVIES\"")
 ("u" "Music" tags "+CATEGORY=\"MUSIC\""))
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-speed-command-hook '(org-speed-command-default-hook
 org-babel-speed-command-hook)
 org-babel-pre-tangle-hook '(save-buffer)
 org-occur-hook '(org-first-headline-recenter)
 org-deadline-warning-days 0
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-capture-templates '(("t" "Todo" entry (file "~/org/j.org")))
 org-agenda-sorting-strategy '((agenda priority-down) (todo priority-down
 category-keep) (tags priority-down category-keep) (search category-keep))
 org-agenda-start-with-follow-mode t
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-agenda-prefix-format "  %-11:c% s"
 org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook
 change-major-mode-hook org-show-block-all append local]
               5]
             #[nil "\300\301\302\303\304$\207" [org-add-hook
 change-major-mode-hook org-babel-show-result-all append local] 5]
 org-babel-result-hide-spec org-babel-hide-all-hashes my-org-mode-hook)
 org-agenda-start-on-weekday nil
 org-agenda-mode-hook '(my-org-agenda-mode-hook)
 org-directory "~/org/"
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-agenda-files '("~/org/todo.org" "~/org/home.org")
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
 org-src-mode-configure-edit-buffer)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-confirm-shell-link-function 'yes-or-no-p
 )
已输入调试器--Lisp错误: (错误“捕获中止:(错误类型参数stringp (文件:~/org/todo.org::*Tasks))) 信号(错误(“捕获中止:(错误类型参数stringp (文件:~/org/todo.org::*Tasks))) 错误(“捕获中止:%s”(错误类型参数stringp ((“文件:~/org/todo.org::*Tasks”“Tasks”)) (条件案例错误(组织捕获放置:模板) (组织捕获填充模板)((错误退出)(如果(获取缓冲区“*capture*”) (终止缓冲区“*捕获*”)(错误“捕获中止:%s”错误) (cond((等分“C”)(自定义变量(报价组织捕获模板))) ((相等条目“q”)(错误“中止”)) (t(组织捕获集plist条目)(组织捕获获取模板) (组织捕获put:原始缓冲区原始buf :原始文件(或(缓冲区文件名orig buf) (和(功能(引用说明)) (车辆(rassq或buf) dired缓冲区) :原始文件非目录(和(缓冲区文件名) 原始buf)(文件名非目录 (缓冲区文件名orig buf))) :注释注释:初始值 :返回到wconf(当前窗口配置) :默认时间(或组织覆盖默认时间) (组织当前时间))$) (组织捕获设置目标位置) (条件案例错误) (组织捕获放置:模板(组织捕获填充模板)) ((退出时出错) (如果(获取缓冲区“*Capture*”)(杀死缓冲区“*Capture*”)) (错误“捕获中止:%s”错误) (setq组织捕获时钟保持(组织捕获获取:时钟保持)) (如果(等于转到0) (此处插入组织捕获模板) (条件案例错误) (组织捕获位置模板) (相等(car(组织捕获获取:目标))(报价函数))) ((错误退出)(如果(和(缓冲区基缓冲区…) (字符串匹配“\\`CAPTURE-”)) (终止缓冲区(当前缓冲区))) (设置窗口配置(组织捕获获取:返回wconf)) (错误“捕获模板“%s”:%s”(组织捕获获取:键)(第n个) 1个错误) (如果(和(派生模式-p(报价组织模式)) (组织捕获获取:打卡) (条件情况为零(程序)(如果组织时钟处于活动状态) (组织捕获) :时钟中断…) (组织时钟输入)(组织设置本地 (报价组织捕获时钟已启动)t) (错误“无法启动此捕获缓冲区中的时钟”)) (如果(组织捕获获取:立即完成)(组织捕获完成(()()))) (let*((原始buf(当前缓冲器)) (注释 (如果(和(边界(报价组织捕获链接已存储)) 组织捕获链接已存储) (plist-get-org-store链接plist:annotation) (条件案例无(程序(组织商店链接无)) (错误为零) (条目(或组织捕获条目(组织捕获选择模板键))) 首字母) (setq初始值(或组织捕获初始值)(和(org-region-active-p) (缓冲子串(点)(标记()(()))) (如果(字符串首字母)(progn(删除文本属性0(长度首字母)) (引号(只读t))首字母) (如果(stringp注释)(progn(删除文字特性0(长度注释)) (引用(只读t))注释) (cond((等分“C”) (自定义变量(报价组织捕获模板))) ((等分“q”) (错误“Abort”)(t(组织捕获集plist条目) (组织捕获获取模板) (组织捕获) :原始缓冲区原始buf :原始文件(或(缓冲区文件名orig buf) (和(功能(引用说明)) (车辆(rassq或buf) dired缓冲区) :原始文件非目录(和 (缓冲区文件名orig buf) (文件名非目录) (缓冲区文件名orig buf))) :注释注释:初始值 :返回wconf (当前窗口配置) :默认时间(或组织覆盖默认时间) (组织当前时间) (组织捕获设置目标位置) (条件案例错误) (组织:模板) (组织捕获填充模板) ((退出时出错) (如果(获取缓冲区“*捕获*”) (终止缓冲区“*捕获*”) (错误“捕获中止:%s”错误) (setq组织捕获时钟保持(组织捕获获取) :时钟保持) (如果(等于转到0) (此处插入组织捕获模板) (条件案例错误) (组织捕获地点模板(相等(汽车…(报价功能))) ((错误退出)(如果(和……) (杀死缓冲区…) (设置窗口配置)
(defun test-inside-kbd-macro ()
  (interactive)
  (print (ignore-errors (org-store-link nil))))
(execute-kbd-macro (read-kbd-macro "M-x test-inside-kbd-macro RET"))
;; Return the link
(if (not (and (or (org-called-interactively-p 'any)
         executing-kbd-macro) link))
   (or agenda-link (and link (org-make-link-string link desc)))
 (push (list link desc) org-stored-links)
 (message "Stored: %s" (or desc link))
 (when custom-id
   (setq link (concat "file:" (abbreviate-file-name
                   (buffer-file-name)) "::#" custom-id))
   (push (list link desc) org-stored-links))
 (car org-stored-links))))))
(v-a (or (plist-get org-store-link-plist :annotation)
      annotation
      (org-capture-get :annotation)
      ""))

(v-A (if (and v-a (string-match l-re v-a))