вызывающий орг-контент из lisp не работает - PullRequest
2 голосов
/ 16 октября 2019

Когда я вызываю org-content из активного буфера, я получаю желаемую схему. Однако, если я использую его в функции lisp, подобной этой

(split-window-right (truncate (* W 0.75)))
    (if (get-buffer "inbox.org")
        (set-window-buffer nil "inbox.org")
      (progn
        (find-file "~/Documents/GTD/inbox.org")
        (text-scale-set -1)))
    (org-content)

Окна разбиваются и загружается правильный буфер, но бит org-content, похоже, ничего не делает. Есть идеи, что я делаю не так?

Спасибо,

Шутка

1 Ответ

2 голосов
/ 16 октября 2019

Вот воспроизводимый пример, откройте новый буфер с именем test.org и определите следующую функцию в буфере *scratch*:

(defun test ()
  (let ((buffer (get-buffer "test.org")))
    (when buffer
      (set-window-buffer nil buffer)
      (message "%s" (current-buffer)))))

Выводимое сообщение: *scratch*: только буферСвязанное с окном было изменено, но то, что Emacs считает текущим буфером, не изменилось.

Если вместо этого вы используете switch-to-buffer, как показано ниже, в сообщении отображается выбранный буфер:

(defun test ()
  (let ((buffer (get-buffer "test.org")))
    (when buffer
      (switch-to-buffer buffer)
      (message "%s" (current-buffer)))))

Применение такого же изменения к вашему коду делает (org-content) счастливым.

...