Як зберігати відступи під елементами простого списку в org-режимі


12

Хоча звичайні абзаци щасливо відступають під елементами простого списку (використовуючи [SPACE] рядок для відступу, перший рядок займає решту разом із собою), я помітив, що кодові блоки не люблять співпрацювати. Чи можна це виправити?

Зараз у мене це:

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

Я хотів би отримати це:

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

Я настійно розглядаю можливість використання org-indent-mode.
wasamasa

Дякую. Я використовую режим org-indent. Це чудово працює для всього, крім блоків вихідного коду ... Я можу зробити щось не так ... чи можете ви відступити вихідний код з org-indent?
Адам

Дозвольте мені змінити це ... Відступ блоку вихідного коду для мене штраф, але лише під заголовками, а не в простих списках ...
Адам,

(org-list-in-valid-context-p)у блоці src вам скажуть, що за замовчуванням org не хоче, щоб блок src був контекстом, де дозволені списки. Змінює org-list-forbidden-blocksможе змінитися , що це не defcustomхоча.
mutbuerger

Чи допомогла моя відповідь? Я радий оновити свою поточну відповідь або додати нову відповідь. Дякуємо за запитання!
Меліорат

Відповіді:


1

Спробуйте це

Я використовую наступні методи, щоб виправити відступи src-блоків під простими списками. Після правильного налаштування відступу завжди використовуйте M-S-leftта M-S-rightпідтримуйте відступи списку.

Виправлення форматування для нових блоків коду

Спочатку курсор відступу, а потім використовуйте вбудований шаблон <sпід час створення нового блоку src під простим списком.

напр 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

Виправлення форматування для існуючих блоків коду

Крок 1 - Визначте потрібний номер стовпця відступу. Для прикладу нижче використовуйте 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

Крок 2 - Помістіть курсор на початку #+END_SRCрядка, потім зробіть M-xindent-to-column 2 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.

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

Крок 3 - Відкрийте та закрийте блок src, розмістивши курсор всередині блоку та використовуючи 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

Дякуємо, що задали ваше запитання.
Сподіваюся, що допомогло!


Цю відповідь було перевірено за допомогою:
GNU Emacs 25.3.1
org-mode: 9.1.13


1
Альтернативно самостійно з'ясувати відступ: перейдіть на початок списку (елемента), наберіть, M-hщоб позначити весь товар, а потім C-M-` to reindent that region. That sorts out the position of the маркер END_SRC`, але тоді вам все одно доведеться зробити трюк для відступу фактичного коду.
Ендрю Сванн

@AndrewSwann - це класне виправлення! Дякую!
Меліорат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.