Zum Beispiel habe ich einen Organisationsmodus, der Folgendes hat
#+BEGIN_SRC emacs-lisp
#+END_SRC
Ist es möglich, Yasnippets so zu konfigurieren, dass alle Emacs-Lisp-Modus-Snippets innerhalb dieses Blocks erweitert werden können, jedoch nicht außerhalb?
C-c '
trotzdem zu bearbeiten - in diesem Fall würde der Emacs-Lisp-Major-Modus die entsprechenden Yasnippet-Snippets laden, während der Block in seinem separaten Fenster bearbeitet wird (das kümmert sich auch um die richtige Einrückung usw.)Antworten:
Ab 2017, 22. Januar, wenn Sie festgelegt
org-src-tab-acts-natively
undorg-src-fontify-natively
dann TAB in Quellenblöcke werden Auszüge , die Sprache des Block erweitern. Möglicherweise möchten Sie festlegenyas-buffer-local-condition
, dass Snipppets im Organisationsmodus die Snippets des Blockmodus nicht mehr überschatten:Siehe auch https://github.com/joaotavora/yasnippet/issues/761 , https://github.com/joaotavora/yasnippet/pull/760
quelle
Ich benutze dafür zwei Methoden. Ich habe einige Org-Schnipsel, die mir beim Erstellen der Babel-Header helfen. In diesem Beispiel werden C ++ - 14-Header für Babel erstellt. Ich tippe
<s C++_
und erweitere:Dann benutze ich Cc ', das in den spezifischen Sprachmodus wechselt und die Snippets für diese Sprache verwende. Verwenden Sie dann Cc ', um zur Organisationsdatei zurückzukehren. Es funktioniert gut.
quelle
Da npostavs bereits geantwortet haben, werden Snippets je nach Sprache in einer Organisationsmodusdatei unterschiedlich erweitert.
Geben Sie einfach "co" und [tab] in den Python- oder Emacs Lisp-Codeblock ein.
quelle