Bagaimana cara mengisi (membungkus) judul mode org?

9

Saya ingin mengisi (membungkus) judul panjang dalam mode org. Saya tidak melihat bagaimana melakukannya di manual org .

Jika saya membungkus garis secara manual dengan memasukkan baris baru, mode org tidak mengenali teks yang dibungkus sebagai tajuk.

Apakah ini mungkin?

Catatan: org-fill-paragraphjangan lakukan ini:

(defun org-fill-paragraph (&optional justify)
  "Fill element at point, when applicable.

This function only applies to comment blocks, comments, example
blocks and paragraphs.  Also, as a special case, re-align table
when point is at one.

If JUSTIFY is non-nil (interactively, with prefix argument),
justify as well.  If `sentence-end-double-space' is non-nil, then
period followed by one space does not end a sentence, so don't
break a line there.  The variable `fill-column' controls the
width for filling.

For convenience, when point is at a plain list, an item or
a footnote definition, try to fill the first paragraph within."
  (interactive)
  ; ...
David J.
sumber

Jawaban:

11

Poster asli menggunakan kata-kata filldan secara wrapbergantian - mereka tidak sama.

Lihat variabelnya org-startup-truncated:

Non-nil means entering Org-mode will set `truncate-lines'.
This is useful since some lines containing links can be very long and
uninteresting.  Also tables look terrible when wrapped.

Standarnya adalah t. Untuk mengubah ini, pengguna dapat memasukkan kode berikut ke dalam .emacsfile:

(setq org-startup-truncated nil)

org-modemembutuhkan garis-akhir untuk mengidentifikasi judul dengan benar. Untuk melihat contoh regexp yang org-modedigunakan untuk pos, pengguna dapat mengetik (setelah org-modebuffer dimuat):

M-x describe-variable RET org-complex-heading-regexp RET

Seperti yang bisa dilihat, akhirnya adalah $- yaitu, ke ujung garis.

^\\(\\*+\\)\\(?: +\\(TODO\\|DONE\\)\\)?\\(?: +\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[     ]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[    ]*$
daftar hukum
sumber
Terima kasih telah menjelaskan pengisian vs. pembungkus. Perbedaan itu tidak jelas dari membaca www.emacswiki.org/emacs/FillParagraph. Terima kasih telah menunjukkan ekspresi reguler yang mendasarinya. Sedangkan untuk take-aways, apakah ini akurat?: Kecuali orang memodifikasi regex itu, mengisi (memasukkan baris baru) bukanlah suatu pilihan. Pemotongan akan berfungsi, baik menggunakan cara Anda menunjukkan atau dengan M-x toggle-truncate-lines(ditunjukkan dalam jawaban saya).
David J.
1
Untuk menonaktifkan pemotongan secara otomatis, variabel org-startup-truncatedpaling tepat karena inisialisasi org-modememeriksa nilai variabel itu dan kecuali itu nil, proses inisialisasi secara khusus ditetapkan (setq truncate-lines t). Untuk menjaga perilaku default dan hanya mengaktifkannya secara manual, maka toggle-truncate-linessudah pasti tepat. Regex yang mendasari untuk headlings tidak dapat dengan mudah diubah (menurut saya) karena ada satu juta dan satu fungsi yang bergantung pada itu - misalnya, org-agenda-list; org-search-view; org-tags-view, untuk beberapa nama.
hukum
1
Anda juga mungkin tertarik pada visual-line-modeupaya mana untuk menjaga seluruh kata bersama saat membungkus. Untuk pengaturan saya sendiri, saya telah memodifikasi pengeditan entri todo sebagai berikut: pengeditan secara otomatis mempersempit buffer ke tugas yang saya edit; visual-line-modediaktifkan dan saya melakukan pengeditan; saat keluar dari buffer yang dipersempit, visual-line-modedimatikan; pemotongan tetap default ketika buffer tidak dipersempit. Saya memiliki pengaturan khusus yang membuat buffer un-narrowed dalam status read-only, yang dibuat dapat dibaca saat mengedit, dan kemudian diatur ke read-only ketika dilakukan.
hukum
4

Saya tidak melihat cara membuat pengisian berfungsi. Jadi solusinya adalah menggunakan M-x toggle-truncate-lines. Ini hanya memengaruhi presentasi tajuk. Itu tidak memasukkan baris baru.

David J.
sumber