org-mode
имеет возможность визуализации исходного кода, с блоками следующего синтаксиса:
#+NAME: <name>
#+BEGIN_SRC <language> <switches> <header arguments>
<body>
#+END_SRC
Существует ли существующая команда для быстрой вставки этих блоков org-mode
или мне нужно использовать внешний инструмент, например yasnippet
?
hydra
package: blogpost (3) еще один фрагмент для легкой вставки исходного блока org.Ответы:
Как @kaushalmodi упоминает в комментариях, вы можете использовать,
(org) Easy Templates
чтобы ускорить вставку различных типов блоков.Общая процедура является вставка с
<
последующим селектор шаблона (обычно одной буквой) на другой пустой строке и нажмите TAB.Селектор шаблонов для общего шаблона исходного блока есть
s
, поэтому<s
после ввода введите TAB:Точка будет расположена в конце первой линии.
Это хорошее первое приближение к тому, чего вы хотите достичь, но это Emacs, так что давайте сделаем это лучше!
Вы можете определить пользовательские шаблоны, добавив одну или несколько записей в переменную с именем
org-structure-template-alist
. Например:Этот код добавляет
#+NAME:
шаблонorg-structure-template-alist
, используя егоn
как селектор шаблона. После расширения этого шаблона точка будет располагаться в месте расположения?
.Если вы всегда называете свои блоки кода, вы также можете перезаписать исходную версию шаблона исходного блока расширенной версией, содержащей
#+NAME:
строку:Набрав с
<s
последующим, TABвы получите:Это только верхушка айсберга; Вы можете использовать аналогичный подход для определения дополнительных шаблонов для блоков кода для конкретного языка, блоков кода с определенными аргументами заголовка и т. д.
источник
<s TAB
Emacs 25 на Mac OS X, и это, похоже, сработало.org-try-structure-completion
функция (для Easy-шаблонов). Но, в любом случае, в будущем он будет заменен структурами-шаблонами. ср code.orgmode.org/bzg/org-mode/commit/…Почему бы не написать это самостоятельно?
источник
На моем ящике 99% времени я создаю исходные блоки, а 1% времени я делаю все остальное. Для 1% удобные шаблоны идеальны, а для 99% у меня есть YaSnippet.
NAME
использование,org-id
но это не имеет значения только для нас), а затем спрашивает меня, какой язык я хочу использовать, ограничивая его теми, которые я сказал Org-Mode Literate Programming (babel)Вот YaSnippet с моим кодом поддержки в конце.
Требуется загрузка в режиме тире и орг.
Вот пример вашей функции id:
Результаты в
источник
источник