TL; DR: Menggunakan pustaka persisten dari babel yang disimpan dalam satu file dapat menjadi setup 3 langkah sederhana:
- Buat
orgfile -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 aggregatebycol1blok 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 'hlinesebagai baris kedua.
Untuk menggunakan blok ini nanti di file org lain, cukup tambahkan :postbait-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 ingestkembali 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.