Например, у меня есть режим организации, который имеет следующий
#+BEGIN_SRC emacs-lisp
#+END_SRC
Можно ли настроить yasnippets таким образом, чтобы все фрагменты emacs-lisp-mode можно было развернуть внутри этого блока, но не за его пределами?
C-c '
любом случае - в этом случае основной режим emacs-lisp будет иметь соответствующие фрагменты yasnippet, загруженные при редактировании блока в отдельном окне (которое также заботится о правильном отступе). и т. д.)Ответы:
По состоянию на 22 января 2017 года, если вы установите
org-src-tab-acts-natively
иorg-src-fontify-natively
, то TAB в исходных блоках расширит фрагменты языка блока. Возможно, вы захотите установить,yas-buffer-local-condition
чтобы фрагменты режима org не затеняли фрагменты режима блока:См. Также https://github.com/joaotavora/yasnippet/issues/761 , https://github.com/joaotavora/yasnippet/pull/760.
источник
Я использую два метода для этого. У меня есть несколько фрагментов org, которые помогут мне создать заголовки babel. Например, этот создает C ++ - 14 заголовков для Babel. Я печатаю
<s C++_
и расширяю:Затем я использую Cc ', который переключается в режим определенного языка и использую фрагменты для этого языка. Затем используйте Cc ', чтобы вернуться к файлу org. Это работает хорошо.
источник
Как уже сообщалось, npostavs сниппеты расширяются по-разному в зависимости от языков в одном файле режима org.
Просто введите "co" и [tab] в блоке кода Python или Emacs Lisp.
источник