TL; DR: Menggunakan pustaka persisten dari babel yang disimpan dalam satu file dapat menjadi setup 3 langkah sederhana:
- Buat
org
file -mode ~/.emacs.d/library-of-babel.org
.
- Tambahkan baris
(org-babel-lob-ingest "~/.emacs.d/library-of-babel.org")
ke conf Emacs Anda.
- Kumpulkan fungsi yang berguna dalam file itu, mereka akan dibaca saat emacs startup.
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:
#+name: addhdr
#+begin_src emacs-lisp :var tbl=""
(cons (car tbl) (cons 'hline (cdr tbl)))
#+end_src
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:
#+NAME: Example
#+BEGIN_SRC elisp :post addhdr(*this*)
'(("Header1" "Column2" "Three")("R1C1V" "2" "C3R1")("4" "5" "6"))
#+END_SRC
#+RESULTS: Example
| Header1 | Column2 | Three |
|---------+---------+-------|
| R1C1V | 2 | C3R1 |
| 4 | 5 | 6 |
Anda juga dapat dengan mudah memberikan tabel yang sudah ada ke fungsi di LOB Anda:
#+NAME: ExData
| h1 | h2 |
| dh1r1 | dh2r1 |
| dh1r2 | dh2r2 |
#+CALL: addhdr(ExData)
Di perpustakaan saya, saya memiliki beberapa bab untuk mengatur berbagai jenis fungsi: Pembuatan Data, Penyaringan, PrettyPrinting, ... Ingatlah ingest
kembali setelah menambahkan blok baru.
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.