การจัดตำแหน่งข้อความในรายการหมายเลขโหมดองค์กรหรือไม่


13

ถาม:มีวิธีใดที่จะเติมศูนย์เป็นorg-modeรายการที่มีหมายเลขหรือไม่

การจัดแนวข้อความในรายการที่มีหมายเลขเริ่มที่จะดูไม่เป็นที่พอใจเมื่อตัวเลขเข้าสู่ตัวเลขสองหลัก:

* A numbered list

  1. Item 1
  2. Item 2
  3. Item 3
  4. Item 4
  5. Item 5
  6. Item 6
  7. Item 7
  8. Item 8
  9. Item 9
  10. Item 10   # ah, my eyes!

org-modeคู่มือรายการธรรมดากล่าวว่า:

รายการที่อยู่ในรายการเดียวกันจะต้องมีการเยื้องในบรรทัดแรก โดยเฉพาะอย่างยิ่งหากรายการที่สั่งซื้อมาถึงหมายเลข '10 ' จะต้องเขียนตัวเลข 2 หลักชิดชิดกับตัวเลขอื่น ๆ ในรายการ รายการจะสิ้นสุดก่อนบรรทัดถัดไปที่เยื้องน้อยกว่าหรือเท่ากับกระสุน / หมายเลข

ดังนั้นดูเหมือนว่าorg-modeต้องการตัวเลขเพื่อจัดชิดซ้าย ด้วยเหตุนี้ฉันจึงสงสัยว่าเป็นไปได้หรือไม่ที่จะเติมซีโรลงในรายการตัวเลขหลักเดียวเพื่อให้ข้อความเรียงตัวกัน:

* A zero-padded numbered list

  01. Item 1
  02. Item 2
  03. Item 3
  04. Item 4
  05. Item 5
  06. Item 6
  07. Item 7
  08. Item 8
  09. Item 9
  10. Item 10   # much better!

จากความอยากรู้ฉันพยายามป้อนเลขศูนย์ด้วยตนเองในรายการแล้วกดปุ่มC-c C-cซึ่งเพียงดึงพวกเขาออกมาอีกครั้ง

ดังนั้น: มีวิธีใดที่จะโน้มน้าวorg-modeให้ศูนย์รวมอยู่ในรายการหมายเลขหรือไม่?

(หมายเหตุ: คำถามที่ได้รับแรงบันดาลใจจากเธรด SOนี้)

คำตอบ:


10

ความแตกต่างต่อไปนี้org-list.elจะหลอกลวง!

diff --git a/lisp/org-list.el b/lisp/org-list.el
index b1d47c9..509e79f 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -1641,7 +1641,8 @@ as returned by `org-list-prevs-alist'."
      ;; Num bullet: increment it.
      ((string-match "[0-9]+" bullet)
       (replace-match
-       (number-to-string (1+ (string-to-number (match-string 0 bullet))))
+       (format (format "%%0%dd" (length (match-string 0 bullet)))
+          (1+ (string-to-number (match-string 0 bullet))))
        nil nil bullet))
      ;; Alpha bullet: increment it.
      ((string-match "[A-Za-z]" bullet)
@@ -1715,7 +1716,7 @@ This function modifies STRUCT."
          (replace-match "a" nil nil bullet))
         ;; First bullet is num: use "1".
         ((string-match "\\([0-9]+\\|[A-Za-z]\\)" bullet)
-         (replace-match "1" nil nil bullet))
+         (replace-match (format (format "%%0%dd" (1+ (log (length struct) 10))) 1) nil nil bullet))
         ;; Not an ordered list: keep bullet.
         (t bullet)))))))))
     (mapc fix-bul (mapcar 'car struct))))

ฟังก์ชั่นอันแรกที่แก้ไขการทำงานorg-list-inc-bullet-maybeของแพ็ดดิ้งที่ใช้กับไอเท็มแรก ชุดข้อมูลแก้ไขอันที่สองฟังก์ชั่น org-list-struct-fix-bulเพื่อคำนวณการเติมเต็มตามจำนวนองค์ประกอบในรายการ


2
ดี! มันจะดีถ้าคุณสามารถส่ง (โดยเฉพาะอย่างยิ่งที่มีตัวเลือกในการสลับ) กับนักพัฒนาโหมด org
Saint Aardvark the Carpeted
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.