AKTUALIZACJA:
Nie zauważyłem, że Org Mode 9.2 zmienił mechanizm rozszerzania szablonów, gdzie org-structure-template-alistdotyczy tylko bloków zdefiniowanych przez "#+BEGIN_"i "#+END_". I wejście jak ("p" ":PROPERTIES:?:END:")nie jest już akceptowane.
Jak wspomniano w powyższym linku, inny „złożony” szablon może być zdefiniowany przez funkcję tempo-define-templatei należy załadować org-tempo ( (require 'org-tempo)). W rzeczywistości wpisy org-structure-template-alist
są konwertowane na org-tempo-tagsvia tempo-define-templateprzez org-tempoi org-tempo-tagsdomyślnie są to:
(("<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))
W twoim przypadku możesz zdefiniować szablon poprzez:
(tempo-define-template "my-property"
'(":PROPERTIES:" p ":END:" >)
"<p"
"Insert a property tempate")
Poniższa odpowiedź działa tylko dla wersji trybu Org wcześniejszej niż 9.2
Tak, możesz dodać do niego wpis w następujący sposób:
(add-to-list 'org-structure-template-alist '("p" ":PROPERTIES:?:END:"))
Następnie w pliku org wpisujesz <pi TAB, rozwinie się ono do właściwości i pozostawi punkt na pozycji ?.
Więcej szczegółów znajdziesz w dokumentacji zmiennej, pisząc C-h v org-structure-template-alist RET.
>symbol jest natempo-define-templateliterówce? Jeśli nie ... Jaka jest rola tego w definicji?