ฉันจะระงับการแสดง emacs ของบรรทัดใหม่สุดท้ายในไฟล์ได้อย่างไร


11

หนึ่งในนิสัยใจคอของกลุ่มคือว่ามันจะไม่แสดงบรรทัดว่างท้ายไฟล์ถ้าไฟล์ลงท้ายด้วยอักขระขึ้นบรรทัดใหม่ ด้วยวิธีนี้หากไฟล์ไม่ได้ลงท้ายด้วยการขึ้นบรรทัดใหม่จอแสดงผลจะเหมือนกันเฉพาะกับตัว[noeol]ทำเครื่องหมายใน modeline

ในทางกลับกัน Emacs จะแสดงบรรทัดสุดท้ายหากไฟล์ลงท้ายด้วยการขึ้นบรรทัดใหม่และไม่เป็นอย่างอื่น

ในขณะที่พฤติกรรมของ Emacs มีความอ่อนไหวมากกว่า แต่ก่อนหรือแย่กว่านั้นฉันก็เคยชินกับอดีต

มีวิธีใดที่จะระงับการแสดงบรรทัดว่างสุดท้ายในขณะที่ยังต้องการให้ไฟล์ถูกยกเลิกการขึ้นบรรทัดใหม่?

emacs ขึ้นบรรทัดใหม่

ภาพหน้าจอแสดงหน้าต่างสามบาน (ดูภาพในแท็บใหม่ถ้าเล็กเกินไป):

  1. หน้าต่าง emacs ขนาดใหญ่ทางด้านซ้ายhexl-modeแสดงให้เห็นว่ามีบรรทัดใหม่ที่ท้ายไฟล์ (0a ซึ่งเป็นตำแหน่งของเคอร์เซอร์)

  2. หน้าต่าง Emacs ที่ด้านบนขวาพร้อมเคอร์เซอร์ที่บรรทัดที่สามว่าง

  3. หน้าต่างเป็นกลุ่มที่ด้านล่างขวาพร้อมเคอร์เซอร์ที่บรรทัดข้อความสุดท้าย เคอร์เซอร์ไม่สามารถเลื่อนไปด้านล่างจุดนี้ได้แม้ว่าไฟล์จะจบลงด้วยการขึ้นบรรทัดใหม่ (ไม่มี[noeol]ตัวทำเครื่องหมายบนสถานะเป็นกลุ่ม)


ขึ้นบรรทัดใหม่อย่างไร แสดงหรือไม่เนื่องจากคุณเปิดใช้งานโหมดย่อยบางโหมด มันจะมีประโยชน์ที่จะวางตัวอย่างจากการตั้งค่าของคุณที่แสดงขึ้นบรรทัดใหม่ล่าสุด ภาพหน้าจอของสิ่งนั้นก็มีประโยชน์เช่นกัน
Kaushal Modi

2
โดย "แสดง" ฉันไม่ได้หมายความว่ามีการแสดงภาพขึ้นบรรทัดใหม่ ฉันแค่หมายความว่าฉันสามารถเลื่อนเคอร์เซอร์ไปที่บรรทัดนั้น
sykora

ไม่สามารถทำซ้ำได้: imgur.com/IAoV7p9พฤติกรรมเดียวกันกับemacs -Qไฟล์นั้นจะต้องเป็นไฟล์บางอย่างในไฟล์ init ของคุณ
T. Verron

หรือรอ ... คุณหมายความว่าคุณไม่ต้องการที่จะย้ายไปที่บรรทัดนั้นแม้ว่าจะมีสายอยู่หรือไม่ ฉันสอง @kaushalmodi ภาพหน้าจอของเสียงเรียกเข้าและพฤติกรรม emacs จะมีประโยชน์
T. Verron

3
@sykora โปรดลองใช้ภาพหน้าจอที่น้อยที่สุด มีพื้นที่ว่างส่วนเกินและซ้ำซ้อนจำนวนมากในภาพหน้าจอทำให้มีขนาดใหญ่กว่าที่ต้องการซึ่งทำให้รูปขนาดย่อเกือบไร้ประโยชน์เนื่องจากมีขนาดเล็กเกินไปที่จะดูว่าเกิดอะไรขึ้น เมื่อถ่ายภาพหน้าจอโปรดปรับขนาดหน้าต่างให้พอดีกับเนื้อหา
Lunaryorn

คำตอบ:


1

ให้ฉันแนะนำข้อเสนอที่น่ากลัวในการใช้งาน:

(defun make-eof-intangible ()
  (interactive)
  (add-hook 'post-command-hook (lambda ()
                                 (when (and (equal (point) (point-max))
                                            (looking-back "\n"))
                                   (backward-char))) t t))

(ฉันใช้เบ็ดท้องถิ่นเพราะฉันสงสัยว่าการตั้งค่าทั่วโลกอาจทำให้เกิดความวุ่นวายมากขึ้นดังนั้นจึงควรเปิดใช้งานในแบบต่อบัฟเฟอร์


1

สิ่งเหล่านี้อาจไม่ใช่สิ่งที่คุณต้องการ แต่อาจมีประโยชน์

  • ฉันกำลังใช้linum-modeโหมดย่อยในบัฟเฟอร์ทั้งหมดของฉัน (ตั้งค่า(global-linum-mode t)ในไฟล์ init ของคุณ) สิ่งนี้แสดงหมายเลขบรรทัดสำหรับบรรทัดที่มีอักขระบรรทัดใหม่ในตอนท้าย

  • สิ่งที่คุณอาจชอบคือการเปิดใช้งานwhitespace-modeโดยค่าเริ่มต้นนี้จะแสดง$สัญญาณสีเทาบนบรรทัดว่างดังนั้นจึงช่วยให้คุณเห็นว่าบรรทัดใดว่างเปล่า ดูหน้า Emacs วิกิพีเดียที่นี่

  • ในทำนองเดียวกันการตั้งค่าindicate-empty-linesที่tจะแสดงให้คุณเห็นว่าบรรทัดสุดท้ายอยู่ที่ใด (ดูคู่มือสำหรับตัวชี้วัดที่นี่ )

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