ОБНОВИТЬ:
Не заметил, что Org Mode 9.2 изменил механизм расширения шаблона, где org-structure-template-alist
только для блоков, определенных "#+BEGIN_"
и "#+END_"
. И запись вроде ("p" ":PROPERTIES:?:END:")
больше не принимается.
Как упомянуто в приведенной выше ссылке, другой «сложный» шаблон может быть определен функцией tempo-define-template
, и org-tempo должен быть загружен ( (require 'org-tempo)
). На самом деле записи org-structure-template-alist
преобразуются в org-tempo-tags
via tempo-define-template
by org-tempo
, и по org-tempo-tags
умолчанию:
(("<i" . tempo-template-org-index)
("<A" . tempo-template-org-ascii)
("<H" . tempo-template-org-html)
("<L" . tempo-template-org-latex)
("<v" . tempo-template-org-verse)
("<s" . tempo-template-org-src)
("<q" . tempo-template-org-quote)
("<l" . tempo-template-org-export-latex)
("<h" . tempo-template-org-export-html)
("<E" . tempo-template-org-export)
("<e" . tempo-template-org-example)
("<C" . tempo-template-org-comment)
("<c" . tempo-template-org-center)
("<a" . tempo-template-org-export-ascii)
("<I" . tempo-template-org-include))
Для вашего случая вы можете определить шаблон следующим образом:
(tempo-define-template "my-property"
'(":PROPERTIES:" p ":END:" >)
"<p"
"Insert a property tempate")
Ниже ответ работает только для версии в режиме Org до 9.2
Да, вы могли бы добавить запись к этому как это:
(add-to-list 'org-structure-template-alist '("p" ":PROPERTIES:?:END:"))
Затем в org-файле вы набираете <p
и TAB
, он расширяется до свойства и оставляет точку в позиции ?
.
И вы можете найти более подробную информацию в документации по переменной, набрав C-h v org-structure-template-alist RET
.
>
символ наtempo-define-template
опечатку? Если нет .... Какова роль этого в определении?tempo-define-template
встроенный defun, подробности смотрите в документации .Частота, с которой они вносят несовместимые изменения в настройку режима org, действительно жаль.
Следующий код возвращает старые шаблоны структуры org-mode до версии 9.2. Эта функция
org-complete-expand-structure-template
является чистой копией версии 9.1 иorg-try-structure-completion
слегка измененной версией версии 9.1. (Я добавил проверку типа там.)После установки этого кода вы можете просто
(add-to-list 'org-structure-template-alist '("p" ":PROPERTIES:?:END:"))
снова использовать старый шаблон .
источник