Misalnya saya memiliki mode org yang memiliki yang berikut ini
#+BEGIN_SRC emacs-lisp
#+END_SRC
Apakah mungkin untuk mengkonfigurasi yasnippet sedemikian rupa sehingga semua snippet emacs-lisp-mode dapat diperluas di dalam blok itu tetapi tidak di luarnya?
C-c '
- dalam hal itu, mode utama emacs-lisp akan memiliki potongan yasnippet yang tepat dimuat saat mengedit blok di jendela yang terpisah (yang juga menangani lekukan yang tepat dll.)Jawaban:
Mulai 2017, 22 Januari, jika Anda menetapkan
org-src-tab-acts-natively
danorg-src-fontify-natively
, maka TAB di blok sumber akan memperluas cuplikan bahasa blok. Anda mungkin ingin mengaturyas-buffer-local-condition
agar mode cuplikan org dari membayangi cuplikan mode blok:Lihat juga https://github.com/joaotavora/yasnippet/issues/761 , https://github.com/joaotavora/yasnippet/pull/760
sumber
Saya menggunakan dua metode untuk ini. Saya memiliki beberapa cuplikan org untuk membantu saya membuat header babel. Misalnya, yang ini membuat C ++ - 14 header untuk Babel. Saya mengetik
<s C++_
dan memperluas:Lalu saya menggunakan Cc 'yang beralih ke mode bahasa tertentu dan menggunakan snippet untuk bahasa itu. Kemudian gunakan Cc 'untuk kembali ke file org. Ini bekerja dengan baik.
sumber
Seperti yang sudah dijawab npostav, snippet diperluas secara berbeda tergantung pada bahasa dalam satu file mode org.
Cukup ketik "co" dan [tab] dalam Python atau Emacs Lisp code block.
sumber