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.