Cách giữ thụt lề dưới các mục danh sách đơn giản ở chế độ org


12

Mặc dù các đoạn thông thường được thụt vào một cách vui vẻ dưới các mục danh sách đơn giản (sử dụng thanh [SPACE] để thụt dòng đầu tiên đi cùng với phần còn lại), tôi đã nhận thấy rằng các khối mã không muốn hợp tác. Có cách nào để khắc phục điều này?

Ngay bây giờ, đây là những gì tôi 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

Tôi muốn có được điều này:

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

Tôi rất muốn xem xét việc sử dụng org-indent-mode.
wasamasa

Cảm ơn. Tôi đang sử dụng chế độ org-indent-mode. Nó hoạt động tuyệt vời cho mọi thứ trừ các khối mã nguồn ... Tôi có thể đang làm gì đó sai ... bạn có thể thụt mã nguồn với org-indent không?
Adam

Hãy để tôi sửa đổi ... khối mã nguồn thụt lề tốt cho tôi, nhưng chỉ dưới tiêu đề, không phải danh sách đơn giản ...
Adam

(org-list-in-valid-context-p)trong khối src sẽ cho bạn biết rằng, theo mặc định, org không muốn khối src là bối cảnh cho phép danh sách được cho phép. Thay đổi org-list-forbidden-blockscó thể thay đổi điều đó, nó không phải là một defcustommặc dù.
mutbuerger

Câu trả lời của tôi có giúp được không? Tôi rất vui khi cập nhật câu trả lời hiện tại của mình hoặc thêm câu trả lời mới. Cảm ơn đã hỏi câu hỏi của bạn!
Melioratus

Câu trả lời:


1

Thử đi

Tôi sử dụng các phương pháp sau để sửa lỗi thụt các khối src trong danh sách đơn giản. Sau khi thụt lề được thiết lập chính xác, luôn luôn sử dụng M-S-leftM-S-rightđể duy trì thụt danh sách.

Sửa định dạng cho các khối mã mới

Con trỏ thụt đầu tiên và sau đó sử dụng mẫu dựng sẵn <skhi tạo khối src mới trong danh sách đơn giản.

ví dụ 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

Sửa định dạng cho các khối mã hiện có

Bước 1 - Chỉ ra số cột thụt lề mong muốn. Đối với ví dụ dưới đây sử dụng 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

Bước 2 - Đặt con trỏ ở đầu #+END_SRCdòng sau đó làm M-xindent-to-column 2 return. Sau đó bạn sẽ thấy như sau:


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

Bước 3 - Mở và đóng khối src bằng cách đặt con trỏ bên trong khối và sử dụng 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

Cảm ơn đã hỏi câu hỏi của bạn.
Hy vọng rằng đã giúp!


Câu trả lời này đã được kiểm tra bằng cách sử dụng:
GNU Emacs 25.3.1
org-mode: 9.1.13


1
Thay thế cho việc tự mình tìm ra cách thụt lề: di chuyển đến đầu danh sách (mục), nhập M-hđể đánh dấu toàn bộ mục và sau đó C-M-` to reindent that region. That sorts out the position of the đánh dấu END_SRC`, nhưng sau đó bạn vẫn phải thực hiện thủ thuật để thụt mã thực tế.
Andrew Swann

@AndrewSwann - Đó là một sửa chữa tuyệt vời! Cảm ơn bạn!
Melioratus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.