org-mode
memiliki kemampuan untuk merender kode sumber, dengan blok sintaks berikut:
#+NAME: <name>
#+BEGIN_SRC <language> <switches> <header arguments>
<body>
#+END_SRC
Apakah ada perintah yang ada untuk memasukkan blok-blok ini dengan cepat org-mode
, atau apakah saya perlu menggunakan alat eksternal seperti yasnippet
?
hydra
paket: blogpost (3) Cuplikan lain untuk penyisipan blok sumber org mudah.Jawaban:
Seperti @kaushalmodi menyebutkan dalam komentar yang dapat Anda gunakan
(org) Easy Templates
untuk mempercepat penyisipan berbagai jenis blok.Prosedur umum adalah memasukkan
<
diikuti oleh pemilih template (biasanya satu huruf) pada baris kosong dan tekan TAB.Selektor templat untuk templat blok sumber umum adalah
s
, jadi mengetikkan<s
diikuti oleh TABakan memberi Anda ini:Point akan diposisikan di akhir baris pertama.
Ini adalah perkiraan pertama yang baik dari apa yang ingin Anda capai, tetapi ini adalah Emacs, jadi mari kita membuatnya lebih baik!
Anda dapat menentukan template khusus dengan menambahkan satu atau lebih entri ke variabel yang dipanggil
org-structure-template-alist
. Sebagai contoh:Kode ini menambahkan
#+NAME:
templat keorg-structure-template-alist
, menggunakann
sebagai templat selektor. Setelah memperluas titik templat ini akan diposisikan di lokasi?
.Jika Anda selalu memberi nama blok kode Anda, Anda juga bisa menimpa versi asli templat blok sumber dengan versi yang diperluas yang menyertakan
#+NAME:
baris:Mengetik
<s
diikuti oleh TABkemudian akan memberi Anda:Ini hanya puncak gunung es; Anda dapat menggunakan pendekatan serupa untuk menetapkan templat tambahan untuk blok kode khusus bahasa, blok kode dengan argumen header spesifik, dll.
sumber
<s TAB
Emacs 25 di Mac OS X dan sepertinya berhasil.org-try-structure-completion
fungsi (untuk templat-Mudah). Tapi bagaimanapun, itu akan digantikan oleh Struktur-template di masa depan. lih. code.orgmode.org/bzg/org-mode/commit/…Mengapa tidak menulisnya sendiri?
sumber
Di kotak saya 99% dari waktu saya membuat blok sumber dan 1% dari waktu saya melakukan yang lain. Untuk Template Mudah 1% yang sempurna dan untuk 99% saya punya YaSnippet.
NAME
penggunaan yang unikorg-id
tetapi itu tidak masalah sama sekali bagi kami apa pun) dan kemudian ia bertanya kepada saya bahasa apa yang ingin saya gunakan membatasi itu yang saya katakan kepada Org-Mode Literate Programming (babel)Ini YaSnippet dengan kode pendukung saya di bagian akhir.
Ini membutuhkan dash dan mode org dimuat.
Berikut adalah contoh dari Anda mungkin fungsi id ini:
Hasil dalam
sumber
sumber