Saya sering memiliki daftar seperti ini:
* Main heading
** TODO [#A] Make world better
** TODO [#B] Make Emacs better
** TODO [#B] Customize emacs
** DONE [#C] some task
** TODO [#A] Launch rocket to mars
Saya ingin mengurutkannya sesuai dengan taskword 'TODO' terlebih dahulu. Kemudian barang-barang di dalam TODO yang diurutkan saya ingin mengurutkan berdasarkan prioritas. (Maka akan menyenangkan untuk mengurutkan lebih lanjut dengan "Usaha").
Dan maksud saya saat ini saya dapat mengklik tajuk utama dan mengurutkan anak-anak dengan prioritas atau dengan kata kunci, tetapi tidak keduanya.
Apakah mengurutkan berdasarkan keduanya mungkin seperti strategi sortir?
Saat ini saya memiliki dua judul
* Tasks
** TODO [#A] meh
** TODO [#B] meh2
* Completed.
** DONE [#B] meh3.
Tetapi masalah dengan pendekatan ini adalah bahwa saya harus terus-menerus mengacak tugas ketika saya menyelesaikannya.
[EDIT]
Ini agak mirip dengan ini, kecuali bahwa saya tidak bisa memahami jawabannya untuk mentransfernya ke kebutuhan saya?
org-sort-entries
akan bertindak pada tajuk utama untuk semua subjudul, atau dapat mengurutkan apa yang ada di wilayah yang dipilih. Ada opsi interaktif untuk Anda pilih. Anda secara terprogram dapat menggunakannya juga, dan beberapa macam dimungkinkan - Saya sering menggunakan a, o, p, t (satu demi satu untuk mencapai 4 level kriteria penyortiran). Misalnya, Anda dapat mengurutkan semuanya terlebih dahulu berdasarkan abjad, lalu dengan kata kunci, lalu berdasarkan prioritas, lalu menurut waktu.org-refile-targets
sesuatu seperti(setq org-refile-targets '((nil . (:maxlevel . 6))))
. Itu akan membuatorg-mode
judul tajuk hingga kedalaman 6 saat refiling. Anda dapat memeriksa dokumentasi untukorg-refile-targets
informasi lebih lanjut.Jawaban:
Akan lebih bagus jika ada sesuatu seperti
org-agenda-sorting-stratagy
itu bekerja dengan baikorg-sort-entries
, tetapi sepertinya tidak ada. Kami dapat memalsukannya karenaorg-sort-entries
dapat mengambil argumen yang menetapkan fungsi yang menetapkan kunci (string atau angka) untuk setiap judul, yang akan digunakan untuk mengurutkan entri ketika?f
jenis penyortiran diberikan. Yang harus kita lakukan adalah mendapatkan string untuk properti TODO dan PRIORITY. Kuncinya adalah kita ingin menyortir properti TODO berdasarkan posisinyaorg-todo-keywords
, bukan berdasarkan abjad.M-x my/org-sort-entries
akan mengurutkan berdasarkan kata kunci TODO dan memutuskan hubungan dengan PRIORITY (menggunakanorg-default-priority
ketika tidak ada prioritas diberikan). Ini akan rusak jika Anda memiliki lebih dari 1000 kata kunci TODO, yang merupakan alasan bagus untuk tidak melakukannya.sumber
todo-to-int
setelah saya menempelkan jawaban saya. Sudah diperbaiki sekarang.Tambahkan yang berikut ke file Anda:
Dan menyeret menjadi pengarsipan
Daripada mengurutkan entri, bagaimana dengan tampilan yang diurutkan?
Batasi ke file saat ini dengan
<
. Anda dapat menandai DIBUAT dan arsipkan dari tampilan yang diurutkan.sumber
Anda juga dapat mendefinisikan
org-agenda-cmp-user-defined
fungsi dan menambahkannya keorg-agenda-sorting-strategy
. Ini yang saya buat sebagai contoh.sumber
Anda dapat menggunakan perpustakaan ini yang dibuat oleh saya: https://github.com/felipelalli/org-sort-tasks
Ini menggunakan Gabung Urut algo dengan meminta pengguna jika tugas A lebih penting daripada B, dan kemudian membangun daftar diurutkan.
sumber