วิธีจัดแนวภูมิภาคและ / หรือเส้นให้ถูกต้อง


10

เราสามารถศูนย์ข้อความด้วยและM-x center-region M-o M-sมีสิ่งที่คล้ายกันสำหรับการจัดตำแหน่งที่ถูกต้องหรือไม่

ตัวอย่างก่อน:

Item 0: value                                                       |
Item 100: value                                                     |
Item 30: value                                                      |

หลังจาก:

                                                       Item 0: value|
                                                     Item 100: value|
                                                      Item 30: value|
                                                       fill-column  ^

วิธีที่ง่ายที่สุดในการจัดข้อความชิดขวาคืออะไร?

คำตอบ:


13

ตามโหนดคู่มือบนการเติมฟังก์ชันการเติมจำนวนมากใช้อาร์กิวเมนต์ JUSTIFY ซึ่งเป็นทางเลือกที่คุณสามารถใช้ได้ (fill-paragraph 'right)ดังนั้นสำหรับตัวอย่างเพื่อเติมวรรคด้วยเหตุผลขวาคุณสามารถใช้

คุณยังสามารถใช้(justify-current-line 'right)สำหรับบรรทัดเดียว

หากคุณวางแผนที่จะใช้ตัวเลือกเหล่านี้เป็นจำนวนมากคุณสามารถรวมมันไว้ในฟังก์ชั่นเช่นต่อไปนี้แล้วผูกฟังก์ชั่นเหล่านี้เข้ากับปุ่มที่คุณเลือก:

(defun right-justify-current-line ()
  "Right-justify this line."
  (interactive)
  (justify-current-line 'right))

(defun right-fill-paragraph ()
  "Fill paragraph with right justification."
  (interactive)
  (fill-paragraph 'right))

นี่คือฟังก์ชั่นที่คุณอาจใช้แทนfill-paragraphได้ ด้วยคำนำหน้าต่างๆช่วยให้คุณตัดสินใจได้ว่าจะใช้เหตุผลใดในย่อหน้าที่คุณกรอก:

(defun fill-paragraph-dwim (&optional arg)
  "Fills the paragraph as normal with no prefix. With C-u,
right-justify.  With C-u C-u, center-justify.  With C-u C-u C-u,
full-justify."
  (interactive "p")
  (fill-paragraph (cond ((= arg 4)  'right)
                        ((= arg 16) 'center)
                        ((= arg 64) 'full))))

หากคุณไม่ต้องการเติมเมื่อคุณจัดตำแหน่งขวาคุณสามารถใช้ฟังก์ชันต่อไปนี้ซึ่งถูก cribbed โดยตรงจากcenter-regionฟังก์ชันด้วยการเปลี่ยนบรรทัดเดียวเพื่อให้จัดแนวขวาแทน:

(defun right-region (from to)
  "Right-justify each nonblank line starting in the region."
  (interactive "r")
  (if (> from to)
      (let ((tem to))
    (setq to from from tem)))
  (save-excursion
    (save-restriction
      (narrow-to-region from to)
      (goto-char from)
      (while (not (eobp))
    (or (save-excursion (skip-chars-forward " \t") (eolp))
        ;; (center-line))              ; this was the original code
        (justify-current-line 'right)) ; this is the new code
    (forward-line 1)))))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.