Come mantenere rientrato in semplici voci di elenco in modalità organizzazione


12

Mentre i paragrafi regolari vengono indentati felicemente sotto semplici voci di elenco (usando la barra [SPAZIO] per indentare la prima riga prende il resto insieme) ho notato che i blocchi di codice non amano cooperare. C'è un modo per risolvere questo problema?

In questo momento, questo è quello che ho:

- [ ] 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

Vorrei ottenere questo:

- [ ] 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

Considererei fortemente l'uso di org-indent-mode.
wasamasa,

Grazie. Sto usando la modalità org-indent. Funziona benissimo per tutto tranne i blocchi di codice sorgente ... Potrei fare qualcosa di sbagliato ... sei in grado di indentare il codice sorgente con org-indent?
Adam,

Permettetemi di modificarlo ... il codice sorgente blocca il rientro bene per me, ma solo sotto le intestazioni, non con semplici elenchi ...
Adam,

(org-list-in-valid-context-p)nel blocco src ti dirà che, per impostazione predefinita, org non vuole che un blocco src sia il contesto in cui sono consentiti gli elenchi. L'alterazione org-list-forbidden-blockspuò cambiarlo, non è un defcustompensiero.
Mutbuerger

La mia risposta mi è stata d'aiuto? Sono felice di aggiornare la mia risposta attuale o aggiungere una nuova risposta. Grazie per aver posto la tua domanda!
Melioratus,

Risposte:


1

Prova questo

Uso i seguenti metodi per correggere il rientro dei blocchi src in semplici elenchi. Dopo aver impostato correttamente il rientro, utilizzare sempre M-S-lefte M-S-rightper mantenere il rientro dell'elenco.

Correzione della formattazione per i nuovi blocchi di codice

Primo cursore di rientro e quindi utilizzare il modello incorporato <sdurante la creazione di un nuovo blocco src in un elenco semplice.

per esempio 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

Correzione della formattazione per i blocchi di codice esistenti

Passaggio 1: capire il numero di colonna di rientro desiderato. Per l'esempio seguente utilizzare 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

Passaggio 2: posiziona il cursore all'inizio della #+END_SRCriga, quindi esegui M-xindent-to-column 2 return. Dopo di che dovresti vedere quanto segue:


- [ ] 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

Passaggio 3: aprire e chiudere il blocco src posizionando il cursore all'interno del blocco 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

Grazie per aver posto la tua domanda.
Spero che abbia aiutato!


Questa risposta è stata testata usando:
GNU Emacs 25.3.1
org-mode: 9.1.13


1
Alternativa per capire da soli il rientro: vai all'inizio dell'elenco (oggetto), digita M-hper contrassegnare l'intero oggetto e poi il C-M-` to reindent that region. That sorts out the position of the marcatore END_SRC`, ma poi devi ancora fare il tuo trucco per il rientro del codice reale.
Andrew Swann,

@AndrewSwann - È una bella soluzione! Grazie!
Melioratus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.