So bleiben Sie im Organisationsmodus unter einfachen Listenelementen eingerückt


12

Während reguläre Absätze unter normalen Listenelementen gut eingerückt sind (mit der [LEERTASTE] zum Einrücken der ersten Zeile nimmt der Rest zusammen mit), ist mir aufgefallen, dass Codeblöcke nicht gerne zusammenarbeiten. Gibt es eine Möglichkeit, dies zu beheben?

Im Moment habe ich Folgendes:

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

Ich möchte folgendes bekommen:

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

Ich würde die Verwendung von dringend in Betracht ziehen org-indent-mode.
Wasamasa

Vielen Dank. Ich verwende den org-indent-Modus. Es funktioniert für alles, außer für Quellcode-Blöcke. Ich könnte etwas falsch machen. Können Sie den Quellcode mit org-indent einrücken?
Adam

Lassen Sie mich das ändern ... Quellcode Block Einzug gut für mich, aber nur unter Überschriften, nicht einfache Listen ...
Adam

(org-list-in-valid-context-p)im src-Block wird Ihnen mitgeteilt, dass org standardmäßig nicht möchte, dass ein src-Block der Kontext ist, in dem Listen zulässig sind. Ändern org-list-forbidden-blockskann das ändern, es ist kein defcustomobwohl.
mutbuerger

Hat meine Antwort geholfen? Gerne aktualisiere ich meine aktuelle Antwort oder füge eine neue Antwort hinzu. Vielen Dank für Ihre Frage!
Melioratus

Antworten:


1

Versuche dies

Ich verwende die folgenden Methoden, um den Einzug von src-Blöcken in einfache Listen zu korrigieren. Verwenden Sie nach der korrekten Einrichtung der Einrückung immer M-S-leftund M-S-right, um die Listeneinrückung beizubehalten.

Korrektur der Formatierung für neue Codeblöcke

Cursor zuerst einrücken und dann die eingebaute Vorlage verwenden, <swenn ein neuer Quellblock unter einer einfachen Liste erstellt wird.

z.B 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

Korrektur der Formatierung für vorhandene Codeblöcke

Schritt 1 - Bestimmen Sie die gewünschte Einrückungsspaltennummer. Für das folgende Beispiel verwenden 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

Schritt 2 - Setzen Sie den Cursor an den #+END_SRCZeilenanfang und führen Sie dann aus M-xindent-to-column 2 return. Danach sollten Sie folgendes sehen:


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

Schritt 3 - Öffnen und schließen Sie den Quellblock, indem Sie den Cursor innerhalb des Blocks platzieren und verwenden 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

Vielen Dank für Ihre Frage.
Hoffe das hat geholfen!


Diese Antwort wurde getestet mit:
GNU Emacs 25.3.1
org-mode: 9.1.13


1
Alternativ dazu können Sie den Einzug auch selbst herausfinden: Gehen Sie zum Anfang der Liste (Element), geben Sie ein M-h, um das gesamte Element und dann C-M-` to reindent that region. That sorts out the position of the die Markierung END_SRC zu markieren. Dann müssen Sie Ihren Trick für das Einrücken des tatsächlichen Codes ausführen.
Andrew Swann

@ AndrewSwann - Das ist eine coole Lösung! Vielen Dank!
Melioratus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.