Como preencher (quebrar) um cabeçalho do modo organizacional?

9

Gostaria de preencher (quebrar) um cabeçalho longo no modo organizacional. Não vejo menção de como fazê-lo no manual da organização .

Se eu quebrar manualmente a linha inserindo uma nova linha, o modo organizacional não reconhecerá o texto quebrado como um cabeçalho.

Isso é possível?

Nota: org-fill-paragraphnão faz isso:

(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.
fonte

Respostas:

11

O pôster original está usando as palavras fille de forma wrapintercambiável - elas não são as mesmas.

Veja a variável 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.

O padrão é t. Para mudar isso, o usuário pode colocar o seguinte código no .emacsarquivo:

(setq org-startup-truncated nil)

org-modeprecisa de um final de linha para identificar corretamente um cabeçalho. Para ver um exemplo do regexp org-modeusado para títulos, o usuário pode digitar (após o org-modecarregamento de um buffer):

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

Como pode ser visto, o final é $- ou seja, até o final da linha.

^\\(\\*+\\)\\(?: +\\(TODO\\|DONE\\)\\)?\\(?: +\\(\\[#.\\]\\)\\)?\\(?: +\\(.*?\\)\\)??\\(?:[     ]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[    ]*$
lista de leis
fonte
Obrigado por esclarecer o preenchimento versus a embalagem. Essa distinção não é clara ao ler www.emacswiki.org/emacs/FillParagraph. Obrigado por mostrar a expressão regular subjacente. Quanto às opções de retirada, isso é preciso ?: A menos que alguém modifique essa expressão regular, o preenchimento (inserção de novas linhas) não é uma opção. O truncamento funcionará, da maneira que você mostra ou com M-x toggle-truncate-lines(mostrado na minha resposta).
David J.
11
Para desativar o truncamento automaticamente, a variável org-startup-truncatedé mais apropriada porque a inicialização org-modeverifica o valor dessa variável e, a menos que seja nil, o processo de inicialização é definido especificamente (setq truncate-lines t). Para manter o comportamento padrão e apenas alterná-lo manualmente, toggle-truncate-linesé certamente apropriado. O regex subjacente para cabeçalhos não pode ser facilmente alterado (na minha opinião) porque há um milhão e uma funções que dependem dele - por exemplo org-agenda-list,; org-search-view; org-tags-view, para nomear alguns.
lawlist
11
Você também pode estar interessado em visual-line-modequais esforços manter as palavras inteiras juntas ao quebrar. Para minha própria configuração, modifiquei a edição das entradas de tarefas da seguinte maneira: a edição restringe automaticamente o buffer à tarefa que estou editando; visual-line-modeestá ativado e eu faço minha edição; ao sair do buffer estreitado, visual-line-modeé desativado; o truncamento permanece o padrão quando o buffer não é reduzido. Eu tenho uma configuração personalizada que mantém o buffer sem restrição em um estado somente leitura, que é tornado legível durante a edição e, em seguida, definido como somente leitura quando concluído.
lawlist
4

Não vejo como fazer o preenchimento funcionar. Portanto, uma solução alternativa é usar M-x toggle-truncate-lines. Isso afeta apenas a apresentação do cabeçalho. Não insere novas linhas.

David J.
fonte