Yasnippet'lerin uygun modda bir org modu babil bölümündeki parçacıkları genişletmesi mümkün müdür?


10

Örneğin, aşağıdakilere sahip bir kuruluş modum var

#+BEGIN_SRC emacs-lisp


#+END_SRC

Yasnippet'leri, tüm emacs-lisp mod snippet'lerinin bu bloğun içinde genişletilebileceği, ancak bunun dışında genişletilemeyeceği şekilde yapılandırılması mümkün müdür?


6
Ben "standart" yolu C-c 'yine de bu blokları düzenlemek için olacağını düşünüyorum - bu durumda, emacs-lisp büyük modu ayrı pencerede blok düzenlerken uygun yasnippet snippet'leri yüklü olacaktır (aynı zamanda doğru girinti ile ilgilenir) vb.)
— VanLaser

Evet, VanLaser'ın yanıtını kabul ediyorum. Emacs tarafından desteklenen herhangi bir dil için çalışır.
— dmg

Ah doğru. Haklısın. Yanıtınızı doğru olarak işaretleyebilmem için bunu bir yanıta koyabilir misiniz? Bunu düşünmemiştim: P
— Rafa de Castro

Yanıtlar:


7

2017 itibariyle, 22 Ocak, org-src-tab-acts-nativelyve ayarlarsanız org-src-fontify-natively, kaynak bloklardaki SEKME, blok dilinin parçacıklarını genişletecektir. yas-buffer-local-conditionKuruluş modu snippet'lerinin blok modunun snippet'lerini gölgelemesini durdurmak için ayarlayabilirsiniz :

(defun my-org-mode-hook ()
  (setq-local yas-buffer-local-condition
              '(not (org-in-src-block-p t))))
(add-hook 'org-mode-hook #'my-org-mode-hook)

Ayrıca bkz. Https://github.com/joaotavora/yasnippet/issues/761 , https://github.com/joaotavora/yasnippet/pull/760


2

Bunun için iki yöntem kullanıyorum. Babil başlıklarını oluşturmama yardımcı olacak bazı kuruluş snippet'leri var. Örneğin, bu, Babel için C ++ - 14 üstbilgileri oluşturur. Ben yazın <s C++_ve genişletin:

# -*- mode: snippet -*-
# name: c++_header
# key: C++_
# --
C++ :main no :flags -std=c++14 -Wall --pedantic -Werror :results output :exports both
#include <iostream>
int main()
{
   $0

   return 0;
}

Sonra belirli bir dil moduna geçiş yapan Cc'yi kullanıyorum ve bu dil için parçacıkları kullanıyorum. Sonra org dosyasına geri dönmek için Cc 'tuşunu kullanın. İyi çalışıyor.


0

Npostav'lar zaten yanıtlandıkça, parçacıklar bir kuruluş modu dosyasındaki dillere bağlı olarak farklı şekilde genişletilir.

Python veya Emacs Lisp kod bloğuna "co" ve [tab] yazmanız yeterlidir.

#+BEGIN_SRC python :session *Python* :results output
co[tab]
# comment
#+END_SRC

#+BEGIN_SRC emacs-lisp :results value scalar
co[tab]
                                        ; comment
#+END_SRC
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.