ตรงข้ามของย่อหน้าเติม


25

Emacs fill-paragraphมีฟังก์ชั่น มีฟังก์ชั่นใดบ้างที่จะทำตรงกันข้ามกับสิ่งนั้น?

ฉันมีย่อหน้าที่กรอกแล้วและต้องการแทนที่เป็นบรรทัดเดียวหรือไม่


1
fill-paragraphไม่ได้แสดงให้เห็นถึงวรรคเว้นแต่คุณจะใช้อาร์กิวเมนต์คำนำหน้าหรือผ่านมันไม่ใช่nilอาร์กิวเมนต์แรก ดู(emacs) Fill Commands
Drew

คำตอบ:


20

การอ้างอิงจากEmacs Wikiโดย Stefan Monnier:

การทำสำเนาย่อหน้าให้รวมบรรทัดทั้งหมดในย่อหน้าเป็นหนึ่งบรรทัด มันเป็นตรงกันข้ามของFillParagraph

มันทำงานได้เมื่อบรรทัดลงท้ายด้วยอักขระขึ้นบรรทัดใหม่ (” \ n”) และย่อหน้าจะคั่นด้วยบรรทัดว่าง หากต้องการสร้างย่อหน้าท้ายในบรรทัดใหม่หนึ่งบรรทัดให้ใช้ฟังก์ชันด้านล่าง:

;;; It is the opposite of fill-paragraph    
(defun unfill-paragraph ()
  "Takes a multi-line paragraph and makes it into a single line of text."
  (interactive)
  (let ((fill-column (point-max)))
    (fill-paragraph nil)))

และผูกมันไว้กับกุญแจ:

 ;; Handy key definition
 (define-key global-map "\M-Q" 'unfill-paragraph)

ดูเพิ่มเติมUnfillRegionและUnwrapLine


12
นี่คือสำเนาตรงจากEmacs Wiki หน้า UnfillParagraphโดยลบผู้เขียน (Stefan Monnier) ที่มา มีประโยชน์ในการโพสต์ข้อมูลที่นี่ แต่อย่างน้อยก็ให้ชัดเจนว่าใครเขียนโค้ดและลิงค์ไปยังหน้าวิกินั้น
ดึง

12
มันเป็นเพียงแค่ความสุภาพในการเพิ่มแหล่งที่มาเมื่อคุณใช้ข้อมูลของคนอื่น
nicael

2
ขอบคุณ Malabarba สำหรับการเปลี่ยนแปลง @KingShimkus: nicael อธิบายว่าทำไมสิ่งนี้ถึงดีกว่า
Drew

2
หากคุณโพสต์เนื้อหาที่เขียนโดยบุคคลอื่นคุณต้องยอมรับแหล่งที่มาของคุณ
Gilles 'หยุดความชั่วร้าย'

1
หมายเหตุลิงค์ไปยังแหล่งที่มีการเปลี่ยนแปลง ฉันแก้ไขมันในคำตอบ
smonff

4

วิธีการของฉันจะวางเคอร์เซอร์ในบรรทัดสุดท้ายของย่อหน้าและกดปุ่มM-^หลายครั้ง

ความสวยงามของช็อตคัตนี้คือการที่ด้านข้างของการรวมเข้าด้วยกันนั้นจะช่วยลดช่องว่างของการเยื้องลงในอันเดียว


AFAIK คุณสามารถทำได้M-^และต้องการเพียงกดปุ่มค้างไว้ delete-indentationฟังก์ชั่นการตั้งชื่อ
rasmus

ชื่อฟังก์ชั่นคืออะไรM-S-^มันใช้งานไม่ได้สำหรับฉัน?
Sibi

ใช่ฟังก์ชั่นคือdelete-indentationและทางลัดอธิบายไว้ใน Emacs เป็นM-^- Sฉันเพิ่มshift ( ) เพราะคุณต้องกดค้างไว้ ขออภัยในความสับสน
Rajish

2

มีunfillแพ็คเกจสำหรับตอนนี้

จัดเตรียมคำสั่งสำหรับย่อหน้าและภูมิภาคที่ไม่ได้ทำการบรรจุอย่างชัดเจน (เช่นการคลาย) และคำสั่งที่จะสลับระหว่างการเติมและการเติมย่อหน้าหรือภูมิภาคปัจจุบัน

มันเริ่มต้นจากตัวอย่างของ Xah Lee และเขียนใหม่ในภายหลังตามบทความโดย Artur Malabarba

มันมีดังต่อไปนี้:

M-x unfill-region
M-x unfill-paragraph
M-x unfill-toggle
M-x toggle-fill-unfill

สะดวกในการเพิ่ม keybinging ที่คุณต้องการเช่น:

(global-set-key (kbd "<f8>") 'toggle-fill-unfill)

คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับ @easyE นี้ได้หรือไม่
smonff

1
ความผิดพลาดของฉัน: รหัสบนพื้นฐานของตัวอย่าง XAH ลียังไม่ได้รับการจดทะเบียนเป็นส่วนหนึ่งของ Emacs แต่ [ จะรวมเป็นแพคเกจ MELPA เป็น] ( melpa.org/#/unfill )
easyE

@easyE ฉันไม่ได้รับความแตกต่างระหว่างความคิดเห็นของคุณและเนื้อหาของคำตอบของฉันขอโทษ
smonff

ฉันไม่ได้แย้งว่านี่เป็นข้อแตกต่าง ฉันรู้สึกผิดที่คิดว่าแพคเกจที่เติมจนเต็มได้รวมอยู่ใน Emacs 25 แล้วฉันก็แก้ไขตัวเอง
easyE

1

เช่นเคยมีหลายวิธีในการทำเช่นนี้ดังนั้นฉันจะโยนคำตอบอื่นในแหวน:

  1. ทำเครื่องหมายย่อหน้า: M-h

  2. ข้อความค้นหาขึ้นบรรทัดใหม่ด้วยช่องว่างในภูมิภาค:

    M-% C-q C-j RET SPC RET !


0

คนจนคนจนสามารถทำได้โดยการตั้งค่าที่fill-columnน่าขัน (ฉันใช้ 9999) ก่อนแล้วค่อยเติม C-u 9999 C-x f M-q C-u 70 C-x fยกตัวอย่างเช่น (นอกจากนี้คุณอาจต้องการที่C-9 C-9 C-9 C-9จะC-u 9999.)


0

ในโหมด Evil จะมีการJเชื่อมโยงคีย์normal modeจาก VIM มันรวมสายด้านล่างและบรรทัดปัจจุบันเป็นหนึ่งบรรทัด ดังนั้นการกดหลายครั้งคุณสามารถยกเลิกการเติมย่อหน้าได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.