Я прочитал руководство по режиму org, но не нашел ярлыка для вставки:
#+BEGIN_SRC
#+END_SRC
Я думаю, мне нужно создать конфигурацию в ~ / .emacs, чтобы установить ярлык? Или есть ярлык но я не знал?
Я много использую R в Emacs. Есть ли способ создать отдельный ярлык для создания этого?
#+BEGIN_SRC R
#+END_SRC
(require 'org-tempo)
добавить в свой.emacs
. Кроме того, вот обновленная ссылка на Простые шаблоны -> orgmode.org/manual/Easy-templates.html, i b
вspacemacs
?[Это дополнение / пояснение к ответам @glucas и @manandearth - оно не само по себе.]
Обратите внимание, что в последних версиях разработки (> = 9.2) режима org (и, следовательно, в будущих стабильных версиях, если что-то не изменится),
org-structure-template-alist
изменился его тип. Встроенный механизм easy-templates был заброшен в пользу более общего механизма, основанного наtempo
пакете. К сожалению, новый механизм допускает только односимвольные сокращения после<
, поэтому<s
будет расширен до#+BEGIN_SRC...#+END_SRC
строки, которую запрашивает OP, но такие вещи, как<el
в ответе @ manandearth, НЕ будут работать. Это все еще в стадии разработки, поэтому все может измениться, но если вы используете многобуквенные<XXX
сокращения, будьте готовы к их поломке при обновлении org-mode до такой версии.Существует также другой механизм:
C-c C-,
привязан к тому,org-insert-structure-template
который запрашивает у вас тип блока, который вы хотите вставить (с меню, которое перечисляет все доступные блоки и позволяет выбирать одним нажатием клавиши). Его преимущество заключается в том, что он будет обтекатьbegin/end
область, поэтому, если вы уже набрали кучу материала и хотите обернуть его в блок, все, что вам нужно сделать, это выбрать его как область и тип,C-c C-.
за которым следует один символ выбрать тип блока.См. Эту заметку [fn: 1], строку документа (новой) функции
org-insert-structure-template
и файлorg-tempo.el
.[fn: 1] Ссылка может быть неточной, поскольку она указывает на фиксированный номер строки в файле, который может (нет!) изменится. Если ссылка не приведет вас в нужное место, найдите строку «расширение шаблона структуры» - и не стесняйтесь редактировать этот ответ и исправить номер строки - спасибо!
источник
Поведение исходного блока изменяется в Org 9.2 . Аббревиатура
<s
больше не работает по умолчанию. Вместо этого вы используетеC-c C-,
какие звонкиorg-insert-structure-template
.Нажатие
C-c C-,
вызывает диалог. НажмитеTAB
и затем введитеsrc R
. Это вставит исходный блок и поместит ваш курсор в начало второй строки (пусть|
будет точкой ):Чтобы затем отредактировать внутри блока, нажмите,
C-o
чтобы открыть новую строку.Вы можете сохранить шаблон, добавив запись в
org-structure-template-alist
. Поместите следующее где-нибудь в свойinit.el
или запустите его используяC-x C-e
:Теперь, когда вы это сделаете,
C-c C-,
вы увидите запись дляr
в списке. Вы можете использовать тот же подход для других языков, таких как Python, Ruby и т. Д. Просто замените cdr в пунктирной паре выше (часть «src R»).Кроме того, чтобы вставить строку между разделителями исходного блока, вы можете вставить символ новой строки, используя
C-q C-j
. То есть, типаsrc
R
C-q C-j
в корд из пунктирной пары выше. Результат будет выглядеть так:Теперь, когда вы нажмете
R
, Emacs вставит исходный блок и поместит курсор между ними на новой строке (пусть|
будет точкой ):источник
<s
Связывание все еще существует, нужно просто включить(require org-temp)
в вашей инициализации , чтобы включить его.(require 'org-tempo)
для связывания клавиш для блоков кода
babel-org
попробуйте выполнить следующее связывание,<r
а затем<tab>
:Вы также можете изменить источник в ESS.
Чтобы связать,
<p
а затем с<tab>
кодом блока Python, например:emacs-lisp, за
<el
которым следует a,<tab>
будет:Другие полезные привязки в
org-mode
:источник
ein
который также должна поддерживать R.(add-to-list 'org-structure-template-alist '("p" . "src python"))
Посмотрите на пакет YASnippet Emacs. Позволяет добавлять фрагменты кода с некоторыми ключевыми словами и вкладку после. Это гораздо проще и полезнее как для режима org, так и для сценариев R. У вас должна быть папка в .emacs.d / snippets / ess-mode (и одна для org-mode), в которой вы сохраняете такие файлы:
Когда вы вводите TAB, он вставляется в% в%, аналогично:
https://www.emacswiki.org/emacs/Yasnippet
https://joaotavora.github.io/yasnippet/snippet-development.html
источник
Чтобы добавить новую комбинацию клавиш в режим org, вы можете использовать
Это вставит строку, если вы нажмете C-cs.
источник