ย้ายบรรทัดโหมดและ minibuffer ไปด้านบน


13

มีวิธีใดบ้างที่ฉันสามารถย้าย line mode และ minibuffer จากด้านล่างไปด้านบนของหน้าจอ?

minibuffer ถูกครอบคลุมโดยคำถามก่อนหน้าวิธีการแสดงเนื้อหาของ minibuffer ตรงกลางเฟรม emacs? ดังนั้นคำถามนี้เกี่ยวกับบรรทัดโหมดเป็นหลัก

ฉันเพิ่งวางแล็ปท็อปของฉันและแตกหน้าจอจึงไม่สามารถมองเห็นได้มากตามแถวด้านล่าง


โดย "แถบสถานะ" คุณหมายถึง mode-line หรือ minibuffer หรือไม่
Malabarba


@Malabarba ขออภัยฉันไม่ได้ 100% ขึ้นอยู่กับคำศัพท์ของ emacs ฉันหมายถึงทั้ง ฉันไม่เห็นมากที่ด้านล่างของหน้าจอ
Mongus Pong

คำตอบ:


19

เนื้อหาของจะถูกเก็บไว้ในตัวแปรmode-line นอกจากนี้ยังสนับสนุนสายหัวที่มีเนื้อหาที่นำโดยตัวแปรmode-line-formatEmacsheader-line-format

ในหลักการคุณสามารถใช้

(setq header-line-format mode-line-format)
(setq-default mode-line-format nil)

เพื่อให้รูปแบบของจะเท่ากับว่าของสายโหมดปัจจุบันของคุณและลบheader-linemode-line

แก้ไข:หากคุณต้องการใช้การตั้งค่านี้อย่างถาวร

(setq-default header-line-format mode-line-format)

ในไฟล์ init ของคุณ (ขอบคุณ nispio สำหรับคำแนะนำนั้น)

เมื่อคุณต้องการminibufferให้ปรากฏที่ด้านบนฉันจะเชื่อมโยง @ Malabarba เพื่อตอบคำถามต่อไปจะแสดงเนื้อหาของ minibuffer ตรงกลางเฟรม emacs ได้อย่างไร ซึ่งสามารถปรับให้แสดงมินิบัสบนด้านบนได้ ลองพิจารณา @phils เพื่อตอบคำถามคุณสามารถย้ายมินิบัสของ emacs ไปที่ด้านบนของหน้าจอได้หรือไม่ ในแท็ก"old" emacsใน stackoverflow

เท่าที่ฉันรู้ไม่มีทางที่จะนำมินิบัสไปที่ด้านบนได้โดยตรง วิธีเดียว (ซึ่งใช้โดยคำตอบข้างต้น) คือการใช้เฟรมที่สอง


4
หากคุณกำลังเพิ่มนี้ไฟล์ init ของคุณคุณจะต้องการที่จะใช้แทนsetq-default setq
nispio

ฉันขอเหตุผลของการโหวตได้ไหม
elemakil

@elemakil คำตอบไม่ถูกต้องหากไม่มี setq-default ตอนนี้มันถูกต้องแล้ว :-)
Malabarba

(แม้ว่าทางเทคนิคจะไม่สมบูรณ์ในขณะนี้เกี่ยวกับรายละเอียดใหม่ที่ได้รับจากผู้ใช้)
Malabarba

@ Malabarba ฉันเห็น ขอบคุณที่ล้างข้อมูล! :-)
elemakil

4

คำถามจริงของคุณคือวิธีทำให้ Emacs หลีกเลี่ยงส่วนที่ผิดพลาดของหน้าจอของคุณ บรรทัดโหมดและ minibuffer เป็นเพียงสิ่งที่มีแนวโน้มที่จะจบลงด้วยการอ่านไม่ได้

แทนที่จะย้ายพวกเขาและปล่อยให้สิ่งอื่น (เช่นข้อความ) ในส่วนของหน้าจอที่อ่านไม่ได้การแก้ปัญหาที่สะอาดและทั่วไปมากขึ้นคือการลดขนาดและย้ายเฟรม Emacs (เช่นสิ่งที่มักจะเรียกว่าหน้าต่าง) เพื่อให้อยู่ในพื้นที่ที่ดี จอภาพ

ตามปกติด้วย Emacs มีเครื่องมือเฉพาะสำหรับสิ่งนั้น Maxframe library ( Github home ) ได้รับการออกแบบมาให้เต็มหน้าจอโดยอัตโนมัติด้วย Emacs frame ซึ่งตรงข้ามกับสิ่งที่คุณต้องการ แต่มันจะแสดงmf-set-frame-pixel-sizeฟังก์ชั่นที่มีประโยชน์ซึ่งสามารถเรียกได้จากไฟล์ init พร้อมกับset-frame-positionฟังก์ชั่นมาตรฐานเพื่อวาง เฟรมในตำแหน่งที่เหมาะสมโดยอัตโนมัติเมื่อคุณเปิด Emacs


1
ฉันสนับสนุนประเด็นของคุณ แต่ไม่จำเป็นต้องแฮ็กแพ็คเกจ ดูค่าเริ่มต้นของเฟรมอลิส
Malabarba

@Malabarba ในบันทึกที่ไม่เกี่ยวข้องเกี่ยวกับdoc.endlessparentheses.comเหตุใดเครื่องหมายทับซ้ายที่สองจึงถูกแปลงเป็นรหัส ascii ตัวอย่าง: ฉันได้รับhttp://doc.endlessparentheses.com/Var%2F2C-window-width.htmlเมื่อฉันคลิกที่นี่2C-window-width
Kaushal Modi

@kaushalmodi เป็นเพียงข้อบกพร่องเล็กน้อยในการสร้างดัชนี คุณสามารถใช้เครื่องหมายทับปกติในลิงค์และมันจะทำงานได้ดี ฉันได้แก้ไขภายในเครื่องแล้ว แต่การสร้างดัชนีใหม่ใช้เวลาหลายชั่วโมงดังนั้นฉันจึงเลื่อนออกไปจนกว่า emacs 25 :-)
Malabarba

1
@Malabarba: mf-set-frame-pixel-size มีประโยชน์เนื่องจากวิธีการตั้งค่าความสูงและความกว้างของเฟรมเป็นแบบอักขระไม่ใช่แบบพิกเซลซึ่งไม่ได้ใช้งานได้จริงในสถานการณ์นี้ ค่าเริ่มต้นเฟรมอลิสและญาติของมันยังวัดเป็นตัวละคร
Lorenzo Gatti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.