Saya ingin memahami bagaimana Library Of Babel org-babel bekerja. Sepertinya alat yang kuat namun kurang dimanfaatkan.
Dokumentasi mengatakan bahwa saya bisa
tambahkan kode ke pustaka, dengan terlebih dahulu menyimpan kode dalam blok kode 'src' reguler dari file Org, dan kemudian memuat file Org dengan org-babel-lob-ingest, yang terikat dengan Cc Cv i.
Apa yang org-babel-lob-ingest
sebenarnya dilakukan? Itu hanya menambahkan semua blok sumber dalam File Org ke file lain?
Dan apa kasus penggunaan ini? Dapatkah saya melihat apa yang saya miliki di Perpustakaan saya secara interaktif? Bisakah saya menggunakan sintaks noweb dengan blok sumber di dalam Perpustakaan? Apa yang harus saya lakukan untuk mulai menggunakannya?
Setiap contoh dan tautan ke tutorial sangat disambut.
org-babel-library-of-babel
. Saat mencari blok sumber, org-babel mencari di file saat ini serta daftar yang disimpan dalam variabel di atas. Jawaban oleh @mutbuerger menjelaskan detail dengan sangat baik menurut saya.Jawaban:
Ada pengantar yang bagus untuk perpustakaan babel
library-of-babel.org
yang terletak di direktori sumber Org. Untuk menggunakan contoh-contoh dari blok kode sumber yang dinamai dalam file lain, isiorg-babel-library-of-babel
variabel denganSalah satu dari 21 blok tersebut dinamai "transpose" dan mungkin melakukan apa yang seharusnya dilakukan:
Anda juga dapat menambahkan blok kode Anda sendiri, terutama sesuatu yang mungkin Anda temukan banyak di masa depan. Sebagai contoh, berikut ini memungkinkan saya untuk mengumpulkan nilai dalam tabel bernama dengan kolom pertama:
Simpan blokir dalam file apa pun dan tambahkan ke
org-babel-library-of-babel
:sumber
TL; DR: Menggunakan pustaka persisten dari babel yang disimpan dalam satu file dapat menjadi setup 3 langkah sederhana:
org
file -mode~/.emacs.d/library-of-babel.org
.(org-babel-lob-ingest "~/.emacs.d/library-of-babel.org")
ke conf Emacs Anda.File Library-Of-Babel adalah tempat misal
aggregatebycol1
blok dari @mutbuerger akan disimpan.Contoh kasus penggunaan sederhana lainnya adalah memiliki blok kode, yang menghasilkan data tabel dengan baris header, tetapi tidak menandai headerrow dengan
'hline
. Ini tidak tragis untuk tampilan sederhana, tetapi dapat membuat pemrosesan otomatis lebih lanjut lebih terlibat. Solusi di sini bisa menggunakan blok kode kecil untuk pasca-pemrosesan dari suatu tempat di internet:Ini hanya akan pipa melalui data sambil menyambungkan
'hline
sebagai baris kedua.Untuk menggunakan blok ini nanti di file org lain, cukup tambahkan
:post
bait-pengolah untuk blok sumber org yang menghasilkan data:Anda juga dapat dengan mudah memberikan tabel yang sudah ada ke fungsi di LOB Anda:
Di perpustakaan saya, saya memiliki beberapa bab untuk mengatur berbagai jenis fungsi: Pembuatan Data, Penyaringan, PrettyPrinting, ... Ingatlah
ingest
kembali setelah menambahkan blok baru.sumber