조직 모드에서 일반 목록 항목 아래에 들여 쓰기를 유지하는 방법


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-mode를 사용하고 있습니다. 소스 코드 블록을 제외한 모든 작업에 적합합니다. 잘못했을 수 있습니다. org-indent로 소스 코드를 들여 쓸 수 있습니까?
Adam

소스 코드 블록은 나를 위해 잘 들여 쓰지만, 일반 목록이 아닌 헤더 아래에만 있습니다.
Adam

(org-list-in-valid-context-p)src 블록에서 기본적으로 org는 src 블록이 목록이 허용되는 컨텍스트가되기를 원하지 않습니다. 변화는 org-list-forbidden-blocks그것이 아니다, 그 변경 될 수 defcustom있지만.
mutbuerger

대답이 도움이 되었습니까? 현재 답변을 업데이트하거나 새 답변을 추가하게되어 기쁩니다. 질문 해 주셔서 감사합니다!
Melioratus

답변:


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-멋진 수정입니다! 감사합니다!
Melioratus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.