Як заповнити (загортати) заголовок режиму org?


9

Я хотів би заповнити (обгортати) довгу рубрику в режимі org. Я не бачу згадки про те, як це зробити в посібнику з org .

Якщо я обертаю рядок вручну, вставляючи новий рядок, режим org не розпізнає загорнутий текст як заголовок.

Чи можливо це?

Примітка: org-fill-paragraphне робить цього:

(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)
  ; ...

Відповіді:


11

Оригінальний плакат вживає слова fillі wrapвзаємозамінно - вони не однакові.

Дивіться змінну 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.

Типовим є t. Щоб змінити це, користувач може помістити у .emacsфайл такий код :

(setq org-startup-truncated nil)

org-modeдля правильної ідентифікації заголовка потрібен рядок. Щоб побачити приклад регулярного вираження, який org-modeвикористовується для заголовків, користувач може ввести (після org-modeзавантаження буфера):

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

Як видно, закінчення $- тобто до кінця рядка.

^\\(\\*+\\)\\(?: +\\(TODO\\|DONE\\)\\)?\\(?: +\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[     ]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[    ]*$

Дякуємо за уточнення заповнення проти обгортання. Ця відмінність не зрозуміла з читання www.emacswiki.org/emacs/FillParagraph. Дякуємо, що показали основний регулярний вираз. Що стосується виїздів, чи точно це ?: Якщо ви не модифікуєте, що регулярне вираження, заповнення (вставлення нових рядків) не є варіантом. Відсікання працюватиме, використовуючи те, як ви показуєте, або з M-x toggle-truncate-lines(показано в моїй відповіді).
Девід Дж.

1
Для автоматичного відключення усікання змінна org-startup-truncatedє найбільш доцільною, оскільки ініціалізація org-modeперевіряє значення цієї змінної, і якщо вона не є nil, процес ініціалізації спеціально встановлюється (setq truncate-lines t). Щоб зберегти поведінку за замовчуванням і лише перемикати її вручну, тоді toggle-truncate-lines, безумовно, доречно. Основний регулярний вираз для заголовків неможливо легко змінити (на мою думку), оскільки на нього покладаються мільйон і одна функція, наприклад org-agenda-list,; org-search-view; org-tags-view, назвати декілька.
законник

1
Можливо, вам також буде цікаво, visual-line-modeхто намагається тримати цілі слова разом під час обгортання. Для моєї власної установки я змінив редагування записів todo так: редагування автоматично звужує буфер до завдання, яке я редагую; visual-line-modeактивовано, і я можу редагувати; при виході із звуженого буфера visual-line-modeвимикається; усічення залишається за замовчуванням, коли буфер не звужується. У мене є спеціальна установка, яка зберігає не звужений буфер у стані лише для читання, який стає читабельним під час редагування, а потім встановлюється лише для читання, коли це завершено.
законник

4

Я не бачу, як зробити так, щоб заповнити роботу. Отже, обхідний шлях - це використовувати M-x toggle-truncate-lines. Це впливає лише на подання заголовка. Він не вставляє нові рядки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.