如何在Emacs中保存议程缓冲区的状态?

如何在Emacs中保存议程缓冲区的状态?,emacs,org-mode,Emacs,Org Mode,我的意思是: 我们每个人都在org-agenda-custom-commands变量中设置了自己的命令。 但我如何检测用于创建当前议程缓冲区状态的命令(仅查看此缓冲区,可能是任何本地变量?) 我想保存它并在以后重新创建,而不依赖于当前的.emacs配置 (defun wg-get-org-agenda-view-commands () "Get commands by which the current state of Agenda buffer can be restored using

我的意思是:

我们每个人都在
org-agenda-custom-commands
变量中设置了自己的命令。
但我如何检测用于创建当前议程缓冲区状态的命令(仅查看此缓冲区,可能是任何本地变量?)

我想保存它并在以后重新创建,而不依赖于当前的
.emacs
配置

(defun wg-get-org-agenda-view-commands ()
  "Get commands by which the current state of Agenda buffer can
be restored using \"(eval commands)\"."
  (interactive)
  (if (get-buffer org-agenda-buffer-name)
      (with-current-buffer org-agenda-buffer-name
        (let* ((p (or (and (looking-at "\\'") (1- (point))) (point)))
               (series-redo-cmd (get-text-property p 'org-series-redo-cmd)))
          (if series-redo-cmd
              (get-text-property p 'org-series-redo-cmd)
            (get-text-property p 'org-redo-cmd))))))

(defun wg-run-agenda-cmd (f)
  "Run commands \"f\" in Agenda buffer. You can get these
commands using \"wg-get-org-agenda-view-commands\"."
  (if (get-buffer org-agenda-buffer-name)
      (save-window-excursion
        (with-current-buffer org-agenda-buffer-name
          (let* ((line (org-current-line)))
            (if f (eval f))
            (org-goto-line line))))))
只需读取两个函数的文档字符串。
感谢组织模式邮件列表上的同事们。他们给了我一个暗示

现在我继续“工作组”扩展——它可以保存和恢复组织议程缓冲区