Cara menyimpan indentasi dalam item daftar biasa dalam mode-org

12

Sementara paragraf biasa dengan senang hati indentasi di bawah item daftar biasa (menggunakan bar [SPACE] untuk indent baris pertama mengambil sisanya bersama) Saya perhatikan bahwa blok kode tidak suka bekerja sama. Apakah ada cara untuk memperbaikinya?

Sekarang, inilah yang saya miliki:

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

Saya ingin mendapatkan ini:

- [ ] 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
Adam
sumber
Saya akan sangat mempertimbangkan penggunaan org-indent-mode.
wasamasa
Terima kasih. Saya menggunakan mode indentasi-org. Ini berfungsi baik untuk semuanya kecuali blok kode sumber ... Saya bisa melakukan sesuatu yang salah ... apakah Anda dapat indentasi kode sumber dengan indentasi-org?
Adam
Biarkan saya mengubah itu ... blok kode sumber indentasi baik untuk saya, tetapi hanya di bawah header, bukan daftar polos ...
Adam
(org-list-in-valid-context-p)di blok src akan memberitahu Anda bahwa, secara default, org tidak ingin blok src menjadi konteks di mana daftar diperbolehkan. Mengubah org-list-forbidden-blocksmungkin mengubah itu, itu bukan apa-apa defcustom.
mutbuerger
Apakah jawaban saya membantu? Saya senang memperbarui jawaban saya saat ini atau menambahkan jawaban baru. Terima kasih telah mengajukan pertanyaan Anda!
Melioratus

Jawaban:

1

Coba ini

Saya menggunakan metode berikut untuk memperbaiki lekukan blok src di bawah daftar sederhana. Setelah indentasi diatur dengan benar, selalu gunakan M-S-leftdan M-S-rightuntuk menjaga indentasi daftar.

Perbaiki Pemformatan untuk Blok Kode Baru

Kursor indentasi pertama dan kemudian menggunakan templat bawaan <sketika membuat blok src baru di bawah daftar biasa.

misalnya 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

Perbaiki Pemformatan untuk Blok Kode yang Ada

Langkah 1 - Cari tahu nomor kolom indentasi yang diinginkan. Untuk contoh penggunaan di bawah ini 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

Langkah 2 - Tempatkan kursor di awal #+END_SRCbaris kemudian lakukan M-xindent-to-column 2 return. Setelah itu Anda akan melihat yang berikut:


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

Langkah 3 - Buka dan tutup blok src dengan menempatkan kursor di dalam blok dan menggunakan 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

Terima kasih telah mengajukan pertanyaan Anda.
Harapan itu membantu!


Jawaban ini diuji menggunakan:
GNU Emacs 25.3.1
mode-org: 9.1.13

Melioratus
sumber
1
Alternatif untuk mencari tahu sendiri indentasi: pindah ke awal daftar (item), ketik M-huntuk menandai seluruh item dan kemudian C-M-` to reindent that region. That sorts out the position of the penanda END_SRC`, tetapi kemudian Anda masih harus melakukan trik Anda untuk indentasi kode sebenarnya.
Andrew Swann
@AndrewSwann - Itu perbaikan yang keren! Terima kasih!
Melioratus