Вот воспроизводимый пример, откройте новый буфер с именем 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)
счастливым.