Jak wypełnić (zawinąć) nagłówek trybu organizacji?

9

Chciałbym wypełnić (owinąć) długi nagłówek w trybie org. W instrukcji organizacji nie widzę wzmianki o tym, jak to zrobić .

Jeśli ręcznie zawijam wiersz, wstawiając nowy wiersz, tryb organizacji nie rozpoznaje zawiniętego tekstu jako nagłówka.

czy to możliwe?

Uwaga: org-fill-paragraphnie robi tego:

(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.
źródło

Odpowiedzi:

11

Oryginalny plakat używa słów filli wrapzamiennie - to nie to samo.

Zobacz zmienną 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.

Domyślnie jest to t. Aby to zmienić, użytkownik może umieścić w .emacspliku następujący kod :

(setq org-startup-truncated nil)

org-modepotrzebuje końca linii, aby poprawnie zidentyfikować nagłówek. Aby zobaczyć przykład wyrażenia regularnego używanego org-modedo nagłówków, użytkownik może wpisać (po org-modezaładowaniu bufora):

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

Jak widać, zakończenie jest $- tj. Do końca linii.

^\\(\\*+\\)\\(?: +\\(TODO\\|DONE\\)\\)?\\(?: +\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[     ]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[    ]*$
lista prawnicza
źródło
Dziękujemy za wyjaśnienie napełniania vs. pakowania. To rozróżnienie nie jest jasne po przeczytaniu www.emacswiki.org/emacs/FillParagraph. Dziękujemy za pokazanie wyrażenia regularnego. Jeśli chodzi o dania na wynos, czy jest to dokładne ?: chyba że ktoś zmodyfikuje to wyrażenie regularne, wypełnienie (wstawienie nowego wiersza) nie jest opcją. Obcinanie będzie działać, albo w sposób pokazany, albo za pomocą M-x toggle-truncate-lines(pokazany w mojej odpowiedzi).
David J.
1
Aby automatycznie wyłączyć obcinanie, zmienna org-startup-truncatedjest najbardziej odpowiednia, ponieważ inicjalizacja org-modesprawdza wartość tej zmiennej, a jeśli nie jest nil, proces inicjalizacji jest specjalnie ustawiony (setq truncate-lines t). Aby zachować domyślne zachowanie i przełączać je tylko ręcznie, toggle-truncate-linesjest to z pewnością odpowiednie. Wyrażenie regularne dla nagłówków nie może być łatwo zmienione (moim zdaniem), ponieważ istnieje milion i jedna funkcja, które na nim polegają - np org-agenda-list.; org-search-view; org-tags-view, aby wymienić tylko kilka.
prawnik
1
Możesz być także zainteresowany tym, visual-line-modejakie wysiłki starają się zachować całe słowa razem podczas pakowania. Dla własnego ustawienia zmodyfikowałem edycję wpisów do zrobienia w następujący sposób: edycja automatycznie zawęża bufor do edytowanego zadania; visual-line-modejest aktywowany i wykonuję edycję; po wyjściu z zawężonego bufora visual-line-modejest wyłączany; obcięcie pozostaje domyślne, gdy bufor nie jest zawężony. Mam niestandardową konfigurację, która utrzymuje nie zawężony bufor w stanie tylko do odczytu, który staje się czytelny podczas edycji, a następnie ustawiony jako tylko do odczytu po zakończeniu.
prawnik
4

Nie widzę, jak sprawić, by wypełnianie działało. Tak więc należy obejść ten problem M-x toggle-truncate-lines. Wpływa to tylko na sposób prezentacji nagłówka. Nie wstawia nowych linii.

David J.
źródło