Como manter recuado em itens de lista simples no modo organizacional

12

Enquanto parágrafos regulares são recuados alegremente em itens de lista simples (usando a barra [ESPAÇO] para recuar a primeira linha leva o resto) Eu notei que os blocos de código não gostam de cooperar. Existe alguma maneira de corrigir isso?

No momento, é isso que eu tenho:

- [ ] My plain list item

  Nicely indented paragraph, blah blah blah blah blah blah blah blah
  blah blah blah blah blah blah blah blah blah blah blah blah blah blah
  blah blah blah.

  #+BEGIN_SRC elisp
; Uncooperative code block -> notice that only the first line indents.
(lambda () (do-something-amazing))
(blah-blah-blah)
#+END_SRC

Gostaria de obter o seguinte:

- [ ] My plain list item

  Nicely indented paragraph, blah blah blah blah blah blah blah blah
  blah blah blah blah blah blah blah blah blah blah blah blah blah blah
  blah blah blah.

  #+BEGIN_SRC elisp
  ; Happily indented code block -> notice that all code follows with :)
  (lambda () (do-something-amazing))
  (blah-blah-blah)
  #+END_SRC
Adão
fonte
Eu consideraria fortemente o uso de org-indent-mode.
Wasamasa
Obrigado. Estou usando o modo de indentação orgânica. Funciona muito bem para tudo, exceto blocos de código-fonte ... Eu poderia estar fazendo algo errado ... você é capaz de recuar o código-fonte com o org-indent?
Adam
Deixe-me modificar essa multa bloco travessão código ... fonte para mim, mas apenas sob cabeçalhos, não listas simples ...
Adam
(org-list-in-valid-context-p)no bloco src, você informará que, por padrão, a organização não deseja que um bloco src seja o contexto em que as listas são permitidas. Alterar org-list-forbidden-blockspode mudar isso, não é um defcustompensamento.
mutbuerger
Minha resposta ajudou? É um prazer atualizar minha resposta atual ou adicionar uma nova resposta. Obrigado por fazer sua pergunta!
Melioratus

Respostas:

1

Tente isto

Eu uso os seguintes métodos para corrigir a indentação de blocos src em listas simples. Depois que o recuo estiver configurado corretamente, sempre use M-S-lefte M-S-rightpara manter o recuo da lista.

Corrigir formatação para novos blocos de código

Primeiro indente o cursor e use o modelo interno <sao criar um novo bloco src em uma lista simples.

por exemplo tab <s tab language return

- [ ] My plain list item

  Nicely indented paragraph, blah blah blah blah blah blah blah blah
  blah blah blah blah blah blah blah blah blah blah blah blah blah blah
  blah blah blah.

  <s

Corrigir formatação para blocos de código existentes

Etapa 1 - Descubra o número da coluna de indentação desejada. Para o exemplo abaixo, use 2.


- [ ] My plain list item

  Nicely indented paragraph, blah blah blah blah blah blah blah blah
  blah blah blah blah blah blah blah blah blah blah blah blah blah blah
  blah blah blah.

  #+BEGIN_SRC elisp
; Uncooperative code block -> notice that only the first line indents.
(lambda () (do-something-amazing))
(blah-blah-blah)
#+END_SRC

Etapa 2 - Posicione o cursor no início da #+END_SRClinha e, em seguida, faça M-xindent-to-column 2 return. Após o qual você deverá ver o seguinte:


- [ ] My plain list item

  Nicely indented paragraph, blah blah blah blah blah blah blah blah
  blah blah blah blah blah blah blah blah blah blah blah blah blah blah
  blah blah blah.

  #+BEGIN_SRC elisp
; Uncooperative code block -> notice that only the first line indents.
(lambda () (do-something-amazing))
(blah-blah-blah)
  #+END_SRC

Etapa 3 - Abra e feche o bloco src colocando o cursor dentro do bloco e usando C-' C-'.


- [ ] My plain list item

  Nicely indented paragraph, blah blah blah blah blah blah blah blah
  blah blah blah blah blah blah blah blah blah blah blah blah blah blah
  blah blah blah.

  #+BEGIN_SRC elisp
   ; Uncooperative code block -> notice that only the first line indents.
   (lambda () (do-something-amazing))
   (blah-blah-blah)
  #+END_SRC

Obrigado por fazer sua pergunta.
Espero que tenha ajudado!


Esta resposta foi testada usando:
GNU Emacs 25.3.1
org-mode: 9.1.13

Melioratus
fonte
1
Alternativa para descobrir o recuo você mesmo: vá para o início da lista (item), digite M-hpara marcar o item inteiro e, em seguida C-M-` to reindent that region. That sorts out the position of the , o marcador END_SRC`, mas você ainda precisará fazer o seu truque para o recuo do código real.
Andrew Swann
@AndrewSwann - Essa é uma solução legal! Obrigado!
Melioratus